0

我目前使用的代码是这样的:

@Html.LabelFor(model => model.MaxExecutions)
<div class="input-append">
    @Html.TextBoxFor(model => model.MaxExecutions, new { @class = "input-xxlarge", placeholder="Enter Max Executions" })
    <span class="add-on"><a href='#' class='title' rel='tooltip' title="Help Title" data-content="Help Message">?</a></span>
    @Html.ValidationMessageFor(model => model.MaxExecutions)
</div>

我在我的代码中一遍又一遍地重复这一点。我很乐意将此传递给 HtmlHelper。我传入的模型类型可以更改,并且我希望模型中的 Display 属性可用(或者我只生成一个 htmlstring)。

4

1 回答 1

1

您可以实现扩展方法或帮助程序(静态)类,但有时我喜欢声明式版本 (CSHTML)。无论哪种方式都可以,并且可以从控制器等传递。

~/App_Code/Blah.cshtml

@helper ExecuteHelper() {
   @Html.LabelFor(model => model.MaxExecutions)
   <div class="input-append">
       @Html.TextBoxFor(model => model.MaxExecutions, new { @class = "input-xxlarge",    placeholder="Enter Max Executions" })
    <span class="add-on"><a href='#' class='title' rel='tooltip' title="Help Title" data-content="Help Message">?</a></span>
   @Html.ValidationMessageFor(model => model.MaxExecutions)
   </div>
}

然后在视图中调用它:

@Blah.ExecuteHelper()

我注意到您拥有的 HTML 数量,这就是我选择 @helper 语法解决方案的原因。这是 Scott Guthrie 的一篇文章,概述了这个 MVC 功能: 文章

于 2012-11-13T02:59:07.703 回答