@helper
指令和App_Code
文件夹。
它主要用于抽象一些参数很少的Razor代码。 例如:
@helper Row(string label, object value, string format = "{0}")
{
var text = string.Format(format, value);
<tr>
<td><p>@label</p></td>
<td><p>@text</p></td>
</tr>
}
并且(在我的情况下)大约有10页(报告),大约有50个帮助器作为小的漂亮构建块(如上例所示,尽管它们可能更大一些)。而且它们非常易于编写和使用以及更改参数等。
(此外,每个视图都有自己的帮助器,因此我并不真正关心App_Code
文件夹,也不知道如何删除@helper
指令的原因
所以我真正感兴趣的是现在使用什么作为@helper
的正确替代品,即将推出的ASP.NET 5和Razor 4 ......
我看到了两个建议:
好吧,创建大约500个小类和相应的模板并通过属性传递参数根本听起来不对。使用不带模板的标签助手也需要手动粘贴字符串。
有什么建议吗?
答案 0 :(得分:3)
ASP.NET 5尚未添加对Web窗体的支持。由于@helper标记通常用于ASP.NET 4 Web窗体项目,因此将来仍可以添加它。
选择选项:
使用部分页面和Razor与上面的代码html片段并传递对象中的参数 e.g。
alias
或者,如果你只是调用一个传递一些参数并吐出输出的方法,你可以使用静态方法创建自己的帮助器类,但你必须连接输出字符串而不是使用Razor将html与代码混合