使用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>";
答案 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()