App_Code 文件夹中的简单 Razor 助手:
我的助手.cshtml
@using System.Web.Mvc
@helper SimpleHelper(string inputFor){
<span>@inputFor</span>
Html.RenderPartial("Partial");
}
View /共享文件夹中的简单 View :
我的 View .cshtml
<html>
<head
</head>
<body>
@WFRazorHelper.SimpleHelper("test")
</body>
</html>
View /共享文件夹中的简单局部 View :
部分.cshtml
<h1>Me is Partial</h1>
编译器抛出错误:
CS1061: 'System.Web.WebPages.Html.HtmlHelper' enthält keine Definition für 'RenderPartial', und es konnte keine Erweiterungsmethode 'RenderPartial' gefunden werden, die ein erstes Argument vom Typ 'System.Web.WebPages.Html.HtmlHelper' akzeptiert (Fehlt eine Using-Direktive oder ein Assemblyverweis?).
但是如果我在 MyView.cshtml 中调用 Html.RenderPartial 一切正常。
我想我必须更改一些 web.configs,因为 MyView 中的 HtmlHelper 取自 System.Web.Mvc,而 MyHelper.cshtml 中的 HtmlHelper 取自 System.Web.WebPages。
我该如何解决?
最佳答案
Html
是 WebPage 的一个属性,因此您只能在 View 内访问它。 App_Code 文件夹中的自定义助手无权访问它。
所以你需要通过HtmlHelper
如果您需要在内部使用它作为参数:
@using System.Web.Mvc.Html
@helper SimpleHelper(System.Web.Mvc.HtmlHelper html, string inputFor)
{
<span>@inputFor</span>
html.RenderPartial("Partial");
}
然后通过从 View 中传递 HtmlHelper 实例来调用自定义助手:
<html>
<head>
</head>
<body>
@WFRazorHelper.SimpleHelper(Html, "test")
</body>
</html>
关于razor - 为什么我不能在 App_Code 文件夹中的 Razor 助手 View 文件中使用 Html.RenderPartial?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510840/