Razor 声明性助手将模型作为参数传递

Posted

技术标签:

【中文标题】Razor 声明性助手将模型作为参数传递【英文标题】:Razor declarative helper passing model as parameter 【发布时间】:2016-03-07 03:03:12 【问题描述】:

如何将模型作为参数传递给自定义 html 助手?

目前我有以下文件

@helper LabelFor(string label, string hint)

    <label for="@label">@label</label>
    <span class="mif-info"
          data-role="hint"
          data-hint-background="bg-blue"
          data-hint-color="fg-white"
          data-hint-mode="1"
          data-hint-position="top"
          data-hint="@hint"></span>

调用方式

@MyHelpers.LabelFor(Html.DisplayNameFor(model => model.Title).ToString(), "Description")

如何简化为

@MyHelpers.LabelFor(model => model.Title, "Description")

【问题讨论】:

不可能在@helper 中使用表达式(至少带有泛型类型参数)。请改用HtmlHelper 扩展方法。 【参考方案1】:

我猜,您可以使用 MVC DisplayTemplates 实现相同的效果。你试过那条路吗?

【讨论】:

我可以,但我正在看看是否有办法使用自定义剃须刀助手来做到这一点。

以上是关于Razor 声明性助手将模型作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章