到目前为止,我不认为ViewComponent
解决了也没有解决的问题TagHelper
。有什么替代品吗?接受参数并返回一个的东西HtmlString
?
我没有看到任何有害的东西:
@helper foo(string something) {
<div>Say @something</div>
}
var emailbody = classfilenameinAppCodefolder.foo("hello"); //store result in a variable for further processes
现在我相信它是 RC 之前的临时删除。https://github.com/aspnet/Razor/issues/281 https://github.com/aspnet/Razor/issues/281 and https://github.com/aspnet/Mvc/issues/1130 https://github.com/aspnet/Mvc/issues/1130出色地!最好是这样。我希望有人正在研究它。没有@helper
、建设大型HtmlString
或“模板”将是一个严重的痛苦。
注意:部分视图似乎并不能解决问题。我认为它只渲染视图而不将视图返回到变量。
其次,App_Code文件夹发生了什么?
根据以下 Github 问题,@helper 似乎又回来了,并将包含在 asp .net core 3.0.0 预览版 4 中。
https://github.com/aspnet/AspNetCore/issues/5110 https://github.com/aspnet/AspNetCore/issues/5110
UPDATE
从 asp .net core 3 开始,您现在可以在 Razor 代码块中定义本地函数。
@{
void RenderName(string name)
{
<p>Name: <strong>@name</strong></p>
}
RenderName("Mahatma Gandhi");
RenderName("Martin Luther King, Jr.");
}
https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#razor-code-blocks https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#razor-code-blocks
或者,您可以使用 @functions 指令,如下所示:
@{
RenderName("Mahatma Gandhi");
RenderName("Martin Luther King, Jr.");
}
@functions {
private void RenderName(string name)
{
<p>Name: <strong>@name</strong></p>
}
}
https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#functions https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#functions
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)