只是一个需要快速回答的问题,
我有一个动作,让我们说,
BlogPostController.List();
其中列出了假设博客引擎中的所有帖子。
我想要这个数据的HTML输出和这个数据的XML输出。
我希望能够纯粹通过URL解决这些问题,例如:
http://MyHypotheticalBlogEngine.com/BlogPosts/List
http://MyHypotheticalBlogEngine.com/BlogPosts/List.xml
然后当我在Action方法中调用View()时,它会选择.aspx视图或.xml视图。
这是内置的东西(我似乎无法找到它的信息,但我想不出好的关键字来真正搜索它)或者它是“找到另一种方式或滚动你的自己的方式“求职?
干杯
答案 0 :(得分:3)
您需要指定一个输入参数,该参数对于默认视图可以为空,但需要指定以实现您可能希望支持的其他各种表单。对于RSS阅读器,您可能支持RSS,ATOM,XML等。选择默认值,然后将其他格式类型添加到您的URL。
domain.com/blogs/list/
domain.com/blogs/list/xml
domain.com/blogs/list/atom
等
答案 1 :(得分:3)
要开始,只需在动作中添加一个参数:
public ActionResult List(string format)
{
...
if(String.Compare("xml", format, true) == 0)
{
return View("ListInXml");
}
return View("List");
}
在您的视图中,您可以在不修改RouteTable的情况下为此操作创建网址:
<!-- for HTML -->
<%= Url.Action("list", "blogpost") %>
<!-- for XML -->
<%= Url.Action("list", "blogpost", new { format = "xml" }) %>