呈现动态HTML内容转换成变量剃刀(Rendering dynamic HTML content i

2019-10-20 03:12发布

我想要呈现的动态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,我知道一点关于输出缓冲器。 这是一个可行的办法? 你会推荐什么?

Answer 1:

你可以创建一个视图助手

@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();
}


Answer 2:

创建强类型的局部视图,并添加实际鉴于这种局部视图

见下面的链接

http://www.codeproject.com/Tips/617361/Partial-View-in-ASP-NET-MVC



文章来源: Rendering dynamic HTML content into variable in Razor