gpt4 book ai didi

c# - 包罗万象的 Controller ,MVC

转载 作者:行者123 更新时间:2023-12-02 19:36:30 24 4
gpt4 key购买 nike

我目前正在开发一个 MVC 5 项目,该项目将有多个 Controller ,其中一个 (InformationController) 只是对所有操作执行相同的操作,即:

public ActionResult ActionName()
{
LayoutModel Model = new LayoutModel();
return View(Model);
}

是否可以在一个通用操作中捕获所有操作?这样就可以添加新 View 而无需重新编译。再说一遍,传递的模型将始终是 LayoutModel 并且永远不会有任何参数。

最佳答案

这应该适合你。创建一个新路由,以便该 Controller 不需要该操作,而是传递 View 名称:

routes.MapRoute(
name: "InformationControllerSharedAction",
url: "Information/{actionType}",
defaults: new { controller = "Information", action = "Index" }
);

然后使用您的 Index 操作,您现在实际上是在传递要用于渲染的 View :

public ActionResult Index(string actionType)
{
LayoutModel Model = new LayoutModel();
return View(actionType, model);
}

这将允许如下 URL:

www.website.com/Information/View1
www.website.com/Information/View2
etc.

您所需要做的就是将 View (View1.cshtmlView2.cshtml 等)放入正确的文件夹中。

关于c# - 包罗万象的 Controller ,MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24631453/

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