我们如何在MVC Razor View

时间:2015-09-28 21:08:46

标签: html asp.net-mvc visual-studio razor razor-declarative-helpers

使用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>";

1 个答案:

答案 0 :(得分: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()