Resharper无法解析母版页内的局部视图

时间:2014-02-04 21:45:16

标签: asp.net-mvc-4 resharper-8.0

我已经从vs2012 pro上的ReSharper 7升级到vs2013 pro上的ReSharper 8.1,而ReSharper现在警告我很多部分视图无法解决。 它似乎只发生了:

  • 在ASP母版页中(即不是剃须刀)
  • 当.ascx partial与部分
  • 位于同一控制器文件夹中时

E.g。 Home.Master,位于〜/ Views / Home / HomeProfile.ascx中的〜/ Views / Home / Home.Master呈现UserProfile.ascx<%: Html.RenderPartial("UserProfile") %>都被ReSharper标记为无效。

此外,当我仅通过名称引用时,〜/ views / shared文件夹中的共享部分看起来很好:

RenderPartial by view name working correctly

但是,按路径引用视图似乎不起作用:

enter image description here

(注意。两张图片都是在Home.Master中拍摄的,在〜/ Views / Home中)

当我运行应用程序时,部分工作正常,所以它似乎是ReSharper 8.1中的一个变化。我能做些什么来解决这个问题吗?

3 个答案:

答案 0 :(得分:6)

这是ReSharper中的一个错误。

现在最好的办法是将其设置为忽略此类错误。

您可以通过从左侧的“红色灯泡”中选择“检查选项”并将其设置为其他选项来执行此操作。希望很快就会修复!

编辑:请参阅此票证以了解该问题。 http://youtrack.jetbrains.com/issue/RSRP-395642

答案 1 :(得分:4)

通过使用相对引用,我已经解决了这个问题。所以在我的情况下,我在另一个项目中有一个视图(如果你试图超出当前项目而没有使用正斜杠开始&#34; /&#34;你会收到类似{{3}的警告对于你的问题,改变读取的行

<%Html.RenderPartial("UserProfile")%>

<%Html.RenderPartial("../../Views/Home/UserProfile")%>

<%Html.Partial("../../Views/Home/UserProfile.cshtml")%>

不确定这是否是您解决方案中的确切路径,但希望您能理解我所说的内容 - 您不能使用波浪号(〜)符号。您必须使用HTML的导航符号。显然不太理想,但我敢说它比改变检查规则更好。

此外 - 如果您确实需要删除检查,只需添加行

即可将其注释掉
// ReSharper disable once Mvc.PartialViewNotResolved
... // code goes here

// ReSharper disable Mvc.PartialViewNotResolved
... // code goes here 
// ReSharper restore once Mvc.PartialViewNotResolved

答案 2 :(得分:0)

我今天从ReSharper 2018.2.3收到此错误,是什么时候完成的:

@Html.Partial("_StatusMessage", Model.StatusMessage)

我还注意到了IHtmlHelper.Partial方法本身的警告:

  

使用IHtmlHelper.Partial可能会导致应用程序死锁。考虑使用标记帮助器或IHtmlHelper.PartialAsync。

所以我将代码更改为:

<partial name="_StatusMessage" model="Model.StatusMessage" />

那为我解决了。