14

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

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

例如Home.Master,位于 ~/Views/Home/Home.Master 渲染UserProfile.ascx,位于 ~/Views/Home/UserProfile.ascx。ReSharper 将两者标记为无效<%: Html.RenderPartial("UserProfile") %><%: Html.RenderPartial("~/Views/Home/UserProfile.ascx"%>

此外,当我仅按名称引用时, ~/views/shared 文件夹中的共享部分似乎可以正常提取:

按视图名称渲染部分正常工作

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

在此处输入图像描述

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

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

4

3 回答 3

8

这是 ReSharper 中的一个错误。

目前最好的方法是将其设置为忽略此类错误。

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

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

于 2014-02-13T15:42:49.830 回答
5

通过使用相对引用,我有一个更简单的解决方法。因此,在我的情况下,我在另一个项目中有一个视图(如果您尝试退出当前项目而不以正斜杠“/”开头,您将收到这样的警告对于您的问题,更改显示为的行

<%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
于 2014-11-25T09:25:37.697 回答
0

I was getting this error today from ReSharper 2018.2.3 when did this:

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

I also noticed a warning from the IHtmlHelper.Partial method itself:

Use of IHtmlHelper.Partial may result in application deadlocks. Consider using <partial> Tag Helper or IHtmlHelper.PartialAsync.

So I changed the code to:

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

That fixed it for me.

于 2018-11-17T17:24:00.400 回答