我想将动态HTML内容呈现到变量中,以便稍后将其传递给函数。原因是,我通过另一个平台收到实际内容,我可以使用内部函数将其打印出来。此函数接受要放入占位符的值。
示例:
This is my content:
{mytable}
Blah
现在我可以在mytable
上设置任何内容。好。
我想放在那里的内容目前如下。
@using System.Data
@model Dictionary<string, DataView>
<table>
@foreach (var group in Model)
{
<tr>
<th colspan="3">@group.Key</th>
</tr>
foreach (DataRowView data in group.Value)
{
<tr>
<td>@data.Row["col1"]</td>
<td>@data.Row["col2"]</td>
<td>@data.Row["col3"]</td>
</tr>
}
}
</table>
好。将上述输出实际呈现为变量的最佳方法是什么?我首先想到的只是将每个HTML行追加到一个字符串中,但这对我来说听起来效率很低而且很弱。
我不是ASP.NET的专家,我来自PHP,我对输出缓冲区有所了解。这是一种可能的方式吗?你会推荐什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以创建 ViewHelper :
@helper RenderTable(Dictionary<string, System.Data.DataView> model)
{
<table>
@foreach (var group in Model)
{
<tr>
<th colspan="3">@group.Key</th>
</tr>
foreach (System.Data.DataRowView data in group.Value)
{
<tr>
<td>@data.Row["col1"]</td>
<td>@data.Row["col2"]</td>
<td>@data.Row["col3"]</td>
</tr>
}
}
</table>
}
然后叫它:
@{
string output = RenderTable(someData).ToHtmlString();
}