我刚开始使用 Razor,我的第一个倾向是像对待 .ACSX 一样对待 Helpers。
假设我做了一个非常简单的助手:
@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 或类似的东西。
我想在一个更受参数驱动的助手中,我可以使用我的参数给自己的名字加上前缀,但我觉得这仍然会推迟这个问题。如果我有一些动态帮助器在名称前加上某个参数,我仍然只能在页面上使用该参数。
我是否忽略了一些非常明显的事情?