0

使用 MVC Razor,我们如何在视图中引用 HTML 标记元素作为模板(可以作为字符串或对象传递给帮助程序)?

所需功能的示例(或类似的,我更喜欢/标准化方法,但我找不到):

@TemplateOne {
    <!--Standard Razor markup:-->
    <div>
        <p>@Model.Summary</p>
        <table>
            <tr>
                <td>Lorem ispum...</td>
            </tr>
        </table>
    </div>
}

ID参考:

@{
    var templateToPassToHelper = TemplateOne;
}

我知道上面代码的语法不正确,因为它不适用于我的本地测试。我最接近完成此任务的是使用以下内容(它不能回答问题或解决问题,因为变量只是一个字符串,并且使用这种方法使开发人员无法使用 Visual Studio 智能感知和其他 HTML 编辑帮助):

string template =
  @"<html>
      <head>
        <title>Hello @Model.Name</title>
      </head>
      <body>
        Email: @Html.TextBoxFor(m => m.Email)
      </body>
    </html>";
4

1 回答 1

1

有几种方法可以做你正在谈论的事情。

离开@brent-mannering 评论:

创建一个剃刀部分文件(_partial.cshtml):

<div>
    <p>@Model.Summary</p>
    <table>
        <tr>
            <td>Lorem ispum...</td>
        </tr>
    </table>
</div>

然后@Html.Partial("_partial.cshtml",Model)在任何你想要的模板中使用。

或者您可以使用辅助函数:

@helper TemplateOne(){
    <div>
        <p>@Model.Summary</p>
        <table>
            <tr>
                <td>Lorem ispum...</td>
            </tr>
        </table>
    </div>
}
<!--body of your page-->
@TemplateOne()
于 2015-09-28T21:31:28.000 回答