【发布时间】:2011-02-07 03:34:54
【问题描述】:
我有一个使用 MVC 区域的项目。该区域包含整个项目,而区域之外的主要“视图/控制器/模型”文件夹是空的,除非调度控制器我已设置将默认传入请求路由到我所在区域的主控制器。
这个控制器有一个方法如下:-
public ActionResult Index(string id)
{
return RedirectToAction("Index", "Home", new {area = "xyz"});
}
我还有一个默认路由设置来使用这个控制器,如下所示:-
routes.MapRoute(
"Default", // Default route
"{controller}/{action}/{id}",
new { controller = "Dispatch", action = "Index", id = UrlParameter.Optional }
);
对我网站的任何默认请求都会适当地路由到相关区域。 Area 的“RegisterArea”方法只有一条路由:-
context.MapRoute(
"xyz_default",
"xyz/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
我的区域有多个控制器,有很多视图。在这些控制器方法中对特定视图的任何调用,例如 "return View("blah"); 呈现正确的视图。但是,每当我尝试返回一个视图以及作为参数传入的模型对象时,我都会得到 以下错误:-
Server Error in '/DeveloperPortal' Application.
The view 'blah' or its master was not found. The following locations were searched:
~/Views/Profile/blah.aspx
~/Views/Profile/blah.ascx
~/Views/Shared/blah.aspx
~/Views/Shared/blah.ascx
看起来就像模型对象作为参数传入时一样。到“View()”方法[例如return View("blah",obj) ] 它搜索视图 在项目的根目录中,而不是在特定区域的视图文件夹中。
我在这里错过了什么?
提前致谢。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-areas