如何检查渲染的局部视图
本文关键字:局部 视图 何检查 检查 | 更新日期: 2023-09-27 18:28:36
我想在这些div元素中呈现公共数据。
<div id=element1>
@Htm.Partial("CommonView")
@*Other data...*@
</div>
<div id=element2>
@Htm.Partial("CommonView")
@*Some other data...*@
</div>
<div id=element3>
@Htm.Partial("CommonView")
@*More other data...*@
</div>
我的常见观点看起来像这个
<input id="txtSomethingElse" class="input"/>
我不能在同一个页面上有相同id的元素,但我需要能够从input
元素中获取值。我如何才能实现一些Razor逻辑,为txtSomethingElse
添加前缀或后缀
我希望它像这个一样呈现
<div id=element1>
<input id="txtSomethingElse_1" class="input"/>
</div>
<div id=element2>
<input id="txtSomethingElse_2" class="input"/>
</div>
<div id=element3>
<input id="txtSomethingElse_3" class="input"/>
</div>
您可以很容易地使用Html的这种重载。Partial方法
PartialExtensions.Partial Method (HtmlHelper, String, Object)
http://msdn.microsoft.com/en-us/library/ee402926(v=vs.108).aspx
允许您将模型传递给局部视图,在您的情况下,局部视图可以是表示索引的int
因此局部视图更改为<input id="txtSomethingElse_@Model.ToString()" class="input"/>
其中型号为int
并且您要呈现此视图的代码将更改为
<div id=element1>
@Htm.Partial("CommonView", 1)
@*Other data...*@
</div>
<div id=element2>
@Htm.Partial("CommonView", 2)
@*Some other data...*@
</div>
<div id=element3>
@Htm.Partial("CommonView", 3)
@*More other data...*@
</div>
你可以做一些事情,比如说你的模型有一个Id属性
<input id="txtSomethingElse@Model.Id" class="input" />
我不太擅长剃刀,但我知道老式语法可以使用
<input id="txtSomethingElse<%: Model.Id %>" class=input />
你不能做吗:
@Html.InputFor(m => m.FirstThing, new { @id = @Model.FirstThing.Id + "txtSomethingElse" })
@Html.InputFor(m => m.SecondThing, new { @id = @Model.SecondThing.Id + "txtSomethingElse" })
...
比其他答案更易读/更容易。