2

次の ASP MVC4 コードがあります。

    [HttpGet]
    public virtual ActionResult GetTestAccounts(int applicationId)
    {
        var testAccounts =
            (
                from testAccount in this._testAccountService.GetTestAccounts(3)
                select new
                {
                    Id = testAccount.TestAccountId,
                    Name = testAccount.Name
                }
            ).ToList();

        return Json(testAccounts, JsonRequestBehavior.AllowGet);
    }

これを Web API で動作するように変換しています。このため、ここのように匿名クラスを返す場合、誰かが私の戻り値の型を教えてもらえますか?

4

1 に答える 1

5

それはあるべきですHttpResponseMessage

public class TestAccountsController: ApiController
{
    public HttpResponseMessage Get(int applicationId)
    {
        var testAccounts =
            (
                from testAccount in this._testAccountService.GetTestAccounts(3)
                select new 
                {
                    Id = testAccount.TestAccountId,
                    Name = testAccount.Name
                }
            ).ToList();

        return Request.CreateResponse(HttpStatusCode.OK, testAccounts);
    }
}

ただし、ビュー モデルを使用することをお勧めします (ちなみに、ASP.NET MVC アプリケーションでも使用する必要があります)。

public class TestAccountViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

その後:

public class TestAccountsController: ApiController
{
    public List<TestAccountViewModel> Get(int applicationId)
    {
        return
            (
                from testAccount in this._testAccountService.GetTestAccounts(3)
                select new TestAccountViewModel 
                {
                    Id = testAccount.TestAccountId,
                    Name = testAccount.Name
                }
            ).ToList();
    }
}
于 2013-04-10T12:54:15.580 に答える