gpt4 book ai didi

c# - "Detail Children"主视图/详细 View 的 ASP.NET MVC 路由

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:07 26 4
gpt4 key购买 nike

我有基本的主视图/详细 View 与默认的 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}/

我试图避免的是用一堆 View 弄乱我的 Views\Class 目录,这些 View 基本上都是 Details View 的派生物。

我使用的是 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"
});

然后,在您要使用路由指定母版页的操作方法中,只需在方法参数中包含路由键,然后将其传递给 View :

public ActionResult Logs(int id, string controllerSpecificMaster)
{
//do something

//return view with master name as argument
return View("Logs", controllerSpecificMaster);
}

如果您必须经常这样做,我建议您创建一个自定义 View 引擎并覆盖 FindView() 方法。

关于c# - "Detail Children"主视图/详细 View 的 ASP.NET MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3347451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com