【问题标题】:How to use Html.Partial() inside of custom html-helper in ASP.NET MVC 5?如何在 ASP.NET MVC 5 的自定义 html-helper 中使用 Html.Partial()?
【发布时间】:2019-02-04 09:49:23
【问题描述】:

我想创建一个与页面 html-helper 分开的自定义,它会使用部分视图功能,但由于某种原因 Html.Partial("_partialName") 不起作用

App_Code中分离的cshtml文件内容:

@helper MyHelper(IEnumerable<string> something)
{
    <div>@Html.Partial("_viewName", something)</div>   
}

如何在 Razor 视图页面中只使用Html.Partial

【问题讨论】:

  • 请定义“不起作用”
  • @Andrei 我的错。这是错误文本“HtmlHelper 不包含 Partial 的定义,最合适的方法 PartialExtensions.Partial(HtmlHelper, string)”。我知道它是怎么回事,尝试了几种使用这种扩展方法的方法,但没有结果:(

标签: asp.net-mvc razor html-helper


【解决方案1】:

您不能只在辅助方法中调用Html.Partial("_name", model);PartialHtmlHelper 类型的扩展方法,Html 是 View 的属性(继承自 WebViewPage&lt;TModel&gt;)。您可以通过转到视图(或部分视图)并导航到Html 的定义来检查它。

从帮助器调用它没有意义,因此它没有一个对象可以公开可访问属性 Html 形式 WebViewPage&lt;TModel&gt; 类型。实际上它是CustomHtml 类的一个实例。尝试在视图和助手中写入@this.。您会看到它们有何不同。

【讨论】:

  • 我最近也得出了同样的结论,并决定为 HtmlHelper 做一个扩展方法,提供一个自身的实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
相关资源
最近更新 更多