我刚刚开始使用Razor,我的第一个倾向是将Helpers视为.ACSX。
假设我做了一个非常简单的帮手:
@helper HowManySpans() {
<div>
<input type="text" name="txtLoops" /><input type="submit" value="how many?" />
@{ if (IsPost) {
var count = Request["txtLoops"];
var i = 1;
while (i < count) {
<span>Span #@i</span>
i++;
}
}
</div>
}
在我将两个放在同一页面上之前一切正常。我期待编译器发出像ASPX页面一样的前缀元素的名称,yknow,ctl00_Header_txtLoops或类似的东西。
我想在一个更多参数驱动的帮助器中,我可以使用我的参数来自己添加名称,但我觉得这仍然会推迟这个问题。如果我有一些带有某个参数的前缀名称的动态助手,我仍然只能在一个带有该参数的页面上有一个。
我是否忽略了一些非常明显的东西?
答案 0 :(得分:1)
Razor仅发出页面中的标记。它几乎没有增加标记的方式。 Razor v2添加了条件属性,但代表开发人员仍然有点明确。
我遇到的一个问题是为什么元素甚至需要唯一的名称。在许多现代HTML5应用程序中,元素几乎不需要具有唯一的名称。
但是,假设有需要,我可以通过两种方式来实现它: