[英]C# asp.net mvc 1.0 routing
在我的網絡應用中。 我想設置一條這樣的路線:
/document/quality/index
/document/general/index
/document/quality/detail/[id]
/document/general/detail/[id]
如您所見,我有兩種文件:一般文件和質量文件。 在global.asax文件中進行設置的最佳方法是什么? 我嘗試了以下方法,但無法正常工作:
routes.MapRoute(
"QualityDocument",
"Document/Quality/{action}/{id}",
new { controller = "Document", action="Index", id= ""}
);
routes.MapRoute(
"GeneralDocument",
"Document/General/{action}/{id}",
new { controller = "Document", action = "Index", id = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
編輯
我現在可以正常使用,但是當我在asax文件中更改action =“”時,它將不再起作用:
Global.asax中:
routes.MapRoute(
"GeneralDocument",
"Document/General/{action}/{id}",
new { controller = "Document", action = "blaat", id = "" }
);
DocumentController:
public void blaat(int? id)
{
Response.Write("algemeen");
// return View();
}
現在,我得到資源未找到錯誤。 但是,當我使用索引而不是指責時,它正在工作。 怎么會?
也許添加controller屬性,但將其限制為文檔控制器。
routes.MapRoute(
"QualityDocument",
"{controller}/Quality/{action}/{id}",
new { controller = "Document", action="Index", id= ""},
new { controller = "Document" }
);
routes.MapRoute(
"GeneralDocument",
"{controller}/General/{action}/{id}",
new { controller = "Document", action = "Index", id = "" },
new { controller = "Document" } );
您應該只可以在路由前加上“文檔”作為前綴,然后將默認值設置為:
routes.MapRoute("DocumentView",
"Document/{controller}/{action}/{id}",
new { controller = "General", action="Index", id = "" }
);
記住要完全定義路由! 設定路線時。 不要讓那些意外的路線通過:D
看看MIX上的Scott Hanselman演講非常有趣,您會發現一些很棒的提示!
http://www.hanselman.com/blog/Mix09FirstHalfRollupAndSessionVideos.aspx
嘗試這個:
routes.MapRoute(
"QualityDocument",
"Document/Quality/index",
new { controller = "Document", action="Index" }
);
routes.MapRoute(
"Default", // Route name
"Document/Quality/details/{id}", // URL with parameters
new { controller = "Document", action = "Details", id = "" } // Parameter defaults
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.