ASP.Net MVC 2区域:未找到部分视图'...'

时间:2010-09-29 02:56:31

标签: asp.net-mvc asp.net-mvc-2 views asp.net-mvc-areas

我们最近将一个项目升级到MVC 2,我们想使用区域但是存在问题。

我们创建了一个新区域,设置了控制器,配置了路径,并在正确的位置创建了一个视图。当我们运行代码时,它成功找到路径并命中控制器,但是当它去渲染视图时会出现异常。

Web表单视图引擎似乎没有在“区域”部分中查看视图。我们看到的错误是:

~/Views/<ControllerName>/<ViewName>.aspx
~/Views/<ControllerName>/<ViewName>.ascx
~/Views/Shared/<ViewName>.aspx
~/Views/Shared/<ViewName>.ascx

应该是:

~/<AreaName>/Views/<ControllerName>/<ViewName>.aspx
~/<AreaName>/Views/<ControllerName>/<ViewName>.ascx
~/<AreaName>/Views/Shared/<ViewName>.aspx
~/<AreaName>/Views/Shared/<ViewName>.ascx
~/Views/<ControllerName>/<ViewName>.aspx
~/Views/<ControllerName>/<ViewName>.ascx
~/Views/Shared/<ViewName>.aspx
~/Views/Shared/<ViewName>.ascx

这表明它仍然以某种方式使用MVC 1 dll,但我们仔细看了 并且只能找到对MVC V2的引用(xVal中有一个V1引用,第三方DLL,但修复没有任何区别。)

我只能想象,当我们进行升级时我们错过了一些东西,或者我们遇到了一些不寻常的边缘情况,因为网上似乎没有任何与我们遇到的问题相符的内容。

我们可以看到什么可以帮助我们解决这个问题?

提前感谢您提供的任何帮助。 干杯, 扎克

1 个答案:

答案 0 :(得分:2)

  

我们可以看到什么可以帮助我们解决这个问题?

  1. 确保首先注册区域路由AreaRegistration.RegisterAllAreas();。区域路线也需要注册。
  2. 确保生成的网址链接使用包含的区域名称作为使用ActionLink和其他相关网址助手时的参数之一
  3. 有时只需从头开始删除并重新添加区域。听起来很傻,但确实有效。
  4. 本页左侧的related SO question可能有所帮助。我已经链接了一个我认为可能有价值的东西