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

ber*_*oss 14 asp.net-mvc-4 resharper-8.0

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

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

例如Home.Master,位于〜/ Views/Home/Home.Master渲染中UserProfile.ascx,位于〜/ Views/Home/UserProfile.ascx中.双方<%: Html.RenderPartial("UserProfile") %><%: Html.RenderPartial("~/Views/Home/UserProfile.ascx"%>通过ReSharper的标志为无效.

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

RenderPartial按视图名称正常工作

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

在此输入图像描述

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

当我运行应用程序时,部分工作正常,所以它似乎是ReSharper 8.1中的一个变化.有什么办法可以解决这个问题吗?

BJu*_*ury 7

这是ReSharper中的一个错误.

现在最好的事情是将其设置为忽略此类错误.

您可以通过从左侧的"红灯泡"中选择"检查选项"并将其设置为其他选项来完成此操作.希望很快就能解决!

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


csh*_*ore 5

通过使用相对引用,我可以解决一个更简单的问题。因此,在我的情况下,我在另一个项目中有一个视图(如果您尝试不使用当前斜线“ /”而跳出当前项目,则会收到类似这样的警告。对于您的问题,请更改以下行:

<%Html.RenderPartial("UserProfile")%>
Run Code Online (Sandbox Code Playgroud)

<%Html.RenderPartial("../../Views/Home/UserProfile")%>
Run Code Online (Sandbox Code Playgroud)

要么

<%Html.Partial("../../Views/Home/UserProfile.cshtml")%>
Run Code Online (Sandbox Code Playgroud)

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

另外-如果您确实需要删除检查,只需添加行将其注释掉

// ReSharper disable once Mvc.PartialViewNotResolved
... // code goes here
Run Code Online (Sandbox Code Playgroud)

要么

// ReSharper disable Mvc.PartialViewNotResolved
... // code goes here 
// ReSharper restore once Mvc.PartialViewNotResolved
Run Code Online (Sandbox Code Playgroud)

  • 但是这样一来,如果您决定四处移动东西,您会很头疼,因为您的路径配置不是在一个地方,而是分散在所有(部分)视图中 (2认同)