如何检查渲染部分视图?

时间:2013-08-22 16:30:06

标签: c# jquery asp.net-mvc html5 razor

我想在这些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

添加前缀或sufix的Razor逻辑

我希望它像这样呈现

<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>

3 个答案:

答案 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" })
...

比其他答案更易读/更容易。