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 声明性助手将模型作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Meteor 模板助手编辑 Iron-Router 中作为参数传递的值?

将React函数式组件作为函数的参数传递时,我应该如何用TS声明函数参数类型

将 Razor Form 数据作为模型从带有 ajax 的引导模式传递回 C# 控制器方法

如何通过 Post 方法使用 JSON 模型将 JSON 字典作为参数传递?

如何将带有参数的 Meteor Spacebars 助手传递给另一个助手属性?

首先通过将类型作为参数传递来动态实例化实体框架数据库中的模型对象