WebAPI ですべてをやり直したくない場合は、いくつかの ActionFilterAttribute を実装して、いくつかのクエリ文字列 fi に基づいて ActionResult を変更できます。
public class ResultSwitcherAttribute: ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.HttpContext.Request["data"] != null && filterContext.HttpContext.Request["data"] == "json")
{
filterContext.Result = new JsonResult
{
Data = (filterContext.Result as ViewResult).Model,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
}
次に、それを application_start またはコントローラー/アクションごとに次のように登録します。
[ResultSwitcherAttribute]
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new TestModel()
{
Web = "http://www.mywebpage.com", Name = "Yngve"
});
}
}
?data=json を使用して URL にアクセスすると、ビューではなくモデルの JSON 表現が取得されます。
EDIT:コードサンプルが更新されました