我想要的是解决下一个问题的方法:
1.我有一个MVC 4视图+控制器,用于呈现索引,另一个用于详细信息
2.访问我转到http://localhost:1234/Movies
和http://localhost:1234/Movies/1
的信息(详情)
3.我想创建一条新路线http://localhost:1234/json/Movies
和http://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)。
这可能吗?
感谢。
答案 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)