如何告诉MVC 4 View返回子路径的JSON结果

时间:2013-09-03 12:43:24

标签: javascript asp.net-mvc json asp.net-mvc-4

我想要的是解决下一个问题的方法: 1.我有一个MVC 4视图+控制器,用于呈现索引,另一个用于详细信息 2.访问我转到http://localhost:1234/Movieshttp://localhost:1234/Movies/1的信息(详情) 3.我想创建一条新路线http://localhost:1234/json/Movieshttp://localhost:1234/json/Movies/1 4.在索引方法中我希望代码如下:

public ActionResult Index(string format)
        {
            return View(db.Movies.ToList());
        }

public ActionResult Index(string format)
        {
            return ChooseView(db.Movies.ToList());
        }

我希望视图根据路线渲染相关的(html \ json)。

这可能吗?

感谢。

2 个答案:

答案 0 :(得分:2)

在您的控制器中

public class MoviesController : Controller
{
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Index(string format)
    {
        return ToResult(db.Movies.ToList(), format);
    }
}

这将使/Movies获取视图Index.cshtml呈现的HTML页面,/Movies?format=json获取电影列表作为JSON数据。

辅助方法

public static ActionResult ToResult(object data, string format)
{
    if (format == "json")
    {
        return Json(data, JsonRequestBehavior.AllowGet);
    }
    else
    {
        return View(data);
    }
}

答案 1 :(得分:0)

使用return Json(data)

详情访问

http://programming-pages.com/2012/10/24/json-with-asp-net-mvc-4/