2009-06-25 40 views
2

只是一個問題,需要一個快速的答案,有多個輸出的單個動作

我有一個動作,可以說,

BlogPostController.List(); 

其中列出了所有的帖子在一個假想的博客引擎。

我想這兩個數據的HTML輸出和該數據的XML輸出。

最好,我想能夠通過URL純粹解決這些,例如:

http://MyHypotheticalBlogEngine.com/BlogPosts/List 

http://MyHypotheticalBlogEngine.com/BlogPosts/List.xml 

,然後當我在我的操作方法調用查看()它會選擇要麼在.aspx視圖或取決於.xml視圖。

這是不是建立在(我似乎無法找到它的信息,因爲它是,但我不能想到好的關鍵字的真正尋找它要麼)或者是一個「另謀出路或卷你自己的方式「jobby?

乾杯

回答

3

您需要指定,可以是空白的默認視圖,但需要指定,以實現你可能要支持其他各種形式的輸入參數。在你可能支持RSS,ATOM,XML等RSS閱讀器的情況下,選擇默認,然後添加到您的網址其它格式類型。

domain.com/blogs/list/ 
domain.com/blogs/list/xml 
domain.com/blogs/list/atom 

+0

啊,塔:)簡單的解決方案。有太多掛了它的伸展側:P也沒多想添加額外的成員路徑 – Sekhat 2009-06-25 20:43:44

3

對於剛剛開始的參數添加到您的行動:

public ActionResult List(string format) 
{ 
    ... 

    if(String.Compare("xml", format, true) == 0) 
    { 
     return View("ListInXml"); 
    } 

    return View("List"); 
} 

在你的觀點,你可以創建URL,以這個動作,而無需修改您的RouteTable:

<!-- for HTML --> 
<%= Url.Action("list", "blogpost") %> 

<!-- for XML --> 
<%= Url.Action("list", "blogpost", new { format = "xml" }) %>