如何在asp.net core中定义返回html的函数

2024-02-26

基本上我需要像旧的 asp.net 这样的东西

@helper MakeNote(string content) {
    <p><strong>Note</strong>&nbsp;&nbsp; @content    </p>
}

or JSX

MakeNote(note) {
   return (<div>Note {note}</div>);
}

局部视图不是一种选择。我对返回 IHtmlString 的函数或写入底层编写器的函数感到满意。

它还需要在函数内部支持 Razor 语法(不仅仅是字符串连接)。


Since ASP.NET 核心 3.0,我们可以声明本地功能包含用作模板方法的标记,内部Razor 代码块:

@{
    void RenderName(string name)
    {
        <p>Name: <strong>@name</strong></p>
    }

    RenderName("Mahatma Gandhi");
    RenderName("Martin Luther King, Jr.");
}

它呈现以下 HTML 代码:

<p>Name: <strong>Mahatma Gandhi</strong></p>
<p>Name: <strong>Martin Luther King, Jr.</strong></p>

文档:https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#razor-code-blocks https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#razor-code-blocks


(只是为了完成)ASP.NET 核心 2.0我们可以用模板化 Razor 代表,与<text></text>razor 标签(显式分隔转换),允许我们制作类似于旧时代 ASP.NET MVC 的东西@helper tag:

@{
    Func<string, object> RenderName = @<text>
        <p>
            Name: <strong>@item</strong>
        </p>;
    </text>;
}

<div>
    @RenderName("Victor")
</div>

它呈现以下 HTML 代码:

<div>
    <p>
        Name: <strong>Victor</strong>
    </p>
</div>

文档:https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#templated-razor-delegates https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#templated-razor-delegates
文档<text></text>: https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#razor-code-blocks https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#razor-code-blocks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在asp.net core中定义返回html的函数 的相关文章

随机推荐