【问题标题】:ASP.Net MVC 2 Areas: The partial view '...' was not foundASP.Net MVC 2 区域:未找到部分视图“...”
【发布时间】:2010-09-29 17:27:26
【问题描述】:

我们最近将一个项目升级到 MVC 2,我们想使用 Areas,但出现了一个问题。

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

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,但修复它并没有什么不同)。

我只能想象我们在升级时遗漏了一些东西,或者我们遇到了一些不寻常的边缘情况,因为网络上似乎没有任何东西与我们遇到的问题相匹配。

我们可以看看哪些东西可以帮助我们解决这个问题?

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

【问题讨论】:

  • 我同意你的观点,它表明你以某种方式指向 MVC 1。你做了什么来验证你指向 MVC 2?
  • @steve,“ViewlocationsFormats”也被定义为 OP 在 MVC 2 中描述的内容。 @Zac - 你注册了你的区域路线吗?
  • @Zac - 你确定“应该”的位置列表吗?
  • @Steve - 我们在文本编辑器中打开了所有项目文件并检查了 System.Web.Mvc 引用 - 所有这些文件都适用于 2.0.0.0
  • @Ahmad - 是的,我们已经注册了区域路由 - 正在调用控制器操作,因此路由没有问题。该问题似乎与视图引擎组件有关。至于“应该”列表,我不是 100% 确定应该是这样,但已经接近了。干杯

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


【解决方案1】:

我们可以看看哪些东西可以帮助我们解决这个问题?

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

【讨论】:

  • 感谢艾哈迈德的回复,不幸的是,这些都没有帮助。正如我在上面对问题的评论中提到的那样,问题与路由无关 - 据我所知,这是 WebFormViewModel 的问题。我们已经用几台计算机/开发人员重现了这个问题,因此添加然后删除区域没有帮助。
  • @zak - 什么是 WebFormViewModel?
猜你喜欢
  • 2011-02-07
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 2015-06-12
  • 2011-04-26
  • 1970-01-01
相关资源
最近更新 更多