是否可以从另一个控制器显示视图?

例如,我有一个CategoriesController和一个Category/NotFound.aspx视图.而在CategoriesController,我可以轻松返回View("NotFound").

现在假设我有一个ProductsController,并且有一个要添加产品的操作和视图.但是,此操作要求我们具有要将产品添加到的类别.例如,Products/Add/?catid=10.

如果我找不到基于catid的Category,我希望从Categories控制器显示NotFound视图,而不是在Products控制器下创建CategoryNotFound视图.

这是可能的,还是我用错误的方式组织事情?有什么好办法吗?

推荐答案

对默认情况下,ASP.NETMVC先判断\Views\[Controller_Dir]\个视图,然后,如果找不到视图,则判断\Views\Shared个.

共享目录专门用于跨多个控制器共享视图.只需将视图添加到共享子目录,就可以了.

如果你 Select return View("~/Views/Wherever/SomeDir/MyView.aspx"),你可以返回任何你想要的视图.

Asp.net相关问答推荐

C# - 将 xyz 平铺转换为纬度/经度,反之亦然,给出不同的结果

Windows 命令行中的/p:是什么意思

httpCompression 和 urlCompression 有什么区别?

Window.Open 使用 PDF 流而不是 PDF 位置

如何在txt文件中保存异常?

在 Blazor 中 Select 框绑定

Request.Params 和 Request.Form 什么时候不同?

温莎城堡有什么缺点吗?

如何从 JS 访问 ViewBag

实体框架:如何解决外键约束可能导致循环或多个级联路径?

如何在 ASP.NET Core Web API 中配置 JSON 格式的缩进

通过 ASP.NET/C# 使用 Plupload

使用 VirtualPathProvider 从 DLL 加载 ASP.NET MVC 视图

Windows Azure PaaS(网络角色)的真正替代品?

如何保护存储在 web.config 中的密码?

在资源文件中使用 HTML

将Bundle 包添加到现有的 ASP.NET Webforms 解决方案

服务器标签格式不正确错误

哪个事件先调用?母版页 Page_Load 或内容页 Page_Load

Unity 中的单例每个调用上下文(Web 请求)