[英]Master-Detail Create Views with Razor, ASP.NET MVC 3 and .NET 4.0
[英]ASP.NET MVC Routing for Master / Detail Views with “Detail Children”
我有基本的“主視圖/詳細視圖”,可以很好地與默認的ASP.NET MVC路由配合使用; 但是我想建立一些像這樣的URL:
/Class/Details/5 -- General Detail view [Working]
我不確定的是什么(而且我不受這種URL格式的束縛,只是大致等同)。
/Class/5/Details/Logs -- Detail View with Logs
/Class/5/Details/Status -- Detail View with current Status
另一種表達方式是這樣的:
/{controller}/{id}/{controllerSpecificMaster}/{action}/
我要避免的是,使我的Views \\ Class目錄雜亂無章,而這些視圖基本上都是Details視圖的派生類。
我在ASP.NET MVC 1和.NET 3.5 SP1上。
您要做的第一件事就是路線。 您可能已經完成了此操作,但是如果您還沒有這樣做,則下面的路由條目將處理您的自定義路由需求:
routes.MapRoute("Master_Detail",
"{controller}/{id}/{controllerSpecificMaster}/{action}",
new { controller = "Class",
action = "Index",
id = UrlParameter.Optional,
controllerSpecificMaster = "Details"
});
然后,在要使用路由指定的母版頁的操作方法中,只需在方法參數中包含route鍵,然后將其傳遞給視圖:
public ActionResult Logs(int id, string controllerSpecificMaster)
{
//do something
//return view with master name as argument
return View("Logs", controllerSpecificMaster);
}
如果您必須做很多事情,我建議您創建一個自定義視圖引擎並覆蓋FindView()方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.