基本上我需要类似asp的东西
Basically I need something like old asp
@helper MakeNote(string content) { <p><strong>Note</strong> @content </p> }或JSX
MakeNote(note) { return (<div>Note {note}</div>); }不能选择局部视图.我对返回IHtmlString的函数或向底层编写器写入的函数感到满意.
A partial view is not an option. I am happy with either a function returning an IHtmlString, or a function writing to the underlying writer.
它还需要在函数内部支持Razor语法(不仅仅是字符串连接).
It also needs to support Razor Syntax (not just string concatenation) inside the function.
推荐答案从 ASP.NET Core 3.0 开始,我们可以声明包含标记的 Local Functions 作为模板方法. ,在剃刀代码块内:
Since ASP.NET Core 3.0, we can declare Local Functions containing markup to serve as templating methods, inside Razor Code Blocks:
@{ void RenderName(string name) { <p>Name: <strong>@name</strong></p> } RenderName("Mahatma Gandhi"); RenderName("Martin Luther King, Jr."); }哪个呈现以下HTML代码:
Which renders the following HTML Code:
<p>Name: <strong>Mahatma Gandhi</strong></p> <p>Name: <strong>Martin Luther King, Jr.</strong></p>文档: docs.microsoft/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#razor-code-blocks
(仅出于完成目的)在 ASP.NET Core 2.0 中,我们可以使用模板化的Razor委托,该委托与<text></text> razor标记结合(显式分隔过渡) ),让我们做出类似于过去的ASP.NET MVC @helper标签的内容:
(just for sake of completion) In ASP.NET Core 2.0 we can use Templated Razor delegates, which combined with the <text></text> razor tag (Explicit Delimited Transition), allow us to make something similar to an old day's ASP.NET MVC @helper tag:
@{ Func<string, object> RenderName = @<text> <p> Name: <strong>@item</strong> </p>; </text>; } <div> @RenderName("Victor") </div>哪个呈现以下HTML代码:
Which renders the following HTML Code:
<div> <p> Name: <strong>Victor</strong> </p> </div>文档: docs.microsoft/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#templated-razor-delegates 文档<text></text>: docs.microsoft/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#razor-code-blocks
Documentation: docs.microsoft/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#templated-razor-delegates Documentation <text></text>: docs.microsoft/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-2.0#razor-code-blocks
更多推荐
如何在asp.net核心中定义返回html的函数
发布评论