我想在这些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
元素获取值。我如何实现一些将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>
答案 0 :(得分:3)
您可以轻松使用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"/>
其中Model的类型为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>
答案 1 :(得分:0)
你可以做一些事情,比如你的模型有Id属性
<input id="txtSomethingElse@Model.Id" class="input" />
我不太擅长剃刀,但我知道旧的语法会起作用
<input id="txtSomethingElse<%: Model.Id %>" class=input />
答案 2 :(得分:0)
你不能这样做:
@Html.InputFor(m => m.FirstThing, new { @id = @Model.FirstThing.Id + "txtSomethingElse" })
@Html.InputFor(m => m.SecondThing, new { @id = @Model.SecondThing.Id + "txtSomethingElse" })
...
比其他答案更易读/更容易。