它沒有太多映射到擴展 - MVC 4 URL不需要直接對應文件。相反,您註冊了與控制器操作相對應的路線。因此,對於這一點,你可以有以下途徑:
/something/page/{ID}
可鏈接到SomeController.ShowPage(int ID)
返回一個ViewResult
/something/page/{ID}/xml
可鏈接到SomeController.PageAsXML(int ID)
它返回一個XDocument
/something/page/{ID}/json which links to
SomeController.PageAsJSON(INT ID)which returns a
JsonResult`
這些路由通過在Application_Start()代碼中調用的方法來註冊你的服務器啓動。對於XML頁面例如一個簡單的路線註冊會是這個樣子:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"PageView_XML",
"{controller}/page/{id}/xml",
new { id = "" }
);
}
}
這裏,路線被稱爲"PageView_XML"
以配合在其中也有一個"PageView"
和"PageView_JSON"
一個假設的命名方案。名稱必須是唯一的。 任何匹配模式{controller}/page/{id}/xml
的URL都將使用此路由,其中寫入類似{this}
的任何內容都是與正確位置中的任何字符串匹配的參數。您會注意到{id}
的默認值爲""
(空字符串),這可能不是很有用;你可以選擇一些你的控制器方法可以識別並用來顯示合適的錯誤頁面的東西。
您可以混合{param}
標籤和文字,所以{controller}/page/{id}-xml
甚至{controller}/page/{id}_{format}
將工作。我不太確定{controller}/page/{id}.xml
或{controller}/page/{id}.{format}
,因爲它可能會以不同方式處理.
。
看看the MSDN info on routing,特別是this bit瞭解添加路線的更多細節。 O'Reilly也有一些方便的信息。