Display a view from another controller in ASP.NET MVC

Is it possible to display a view from another controller?

Say for example I have a CategoriesController and a Category/NotFound.aspx view. While in the CategoriesController , I can easly return View("NotFound") .

Now say I have a ProductsController and an action and view to add a product. However, this action requires that we have a Category to add the Product to. For example, Products/Add/?catid=10 .

If I am not able to find the Category based on catid , I want to show the NotFound view from the Categories controller instead of creating a CategoryNotFound view under the Products controller.

Is this possible or am I structuring things in the wrong way? Is there a good way to do this?


Yes. By default, ASP.NET MVC checks first in Views[Controller_Dir] , but after that, if it doesn't find the view, it checks in ViewsShared .

The shared directory is there specifically to share Views across multiple controllers. Just add your View to the Shared subdirectory and you're good to go.

If you do return View("~/Views/Wherever/SomeDir/MyView.aspx") You can return any View you'd like.


You can use:

return View("../Category/NotFound", model);

It was tested in ASP.NET MVC 3, but should also work in ASP.NET MVC 2.


你有没有尝试过RedirectToAction

链接地址: http://www.djcxy.com/p/48120.html

上一篇: 如何确定表示类型的枚举值?

下一篇: 在ASP.NET MVC中显示来自另一个控制器的视图