2013-08-22 25 views
0

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

我不能有在同一页上的编号相同的元素,但我需要能够从input元素得到值。我怎样才能implent一些剃刀逻辑将前缀或sufix添加到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

你是如何获得价值的?使用jQuery?...如果是这样的话,你可以跳过递增的ID并使用像$('#element1 input:first-child')'这样的选择器或给出一个特定的类名称 '和'$('#element1 .somethingElse')' – MikeM

回答

3

可以方便地使用这个在Html.Partial方法

的负载
PartialExtensions.Partial Method (HtmlHelper, String, Object) 

http://msdn.microsoft.com/en-us/library/ee402926(v=vs.108).aspx

允许你通过一个模型的局部视图,而你的情况可能是一个int表示的指数

所以你的部分看法改变<input id="[email protected]()" 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> 
+0

正是我在找的东西。谢谢! – gumenimeda

0

你可以做这样的事情,说你的模型有一个Id属性

<input id="[email protected]" class="input" /> 

我不太擅长剃刀,但我知道老sch OOL语法会工作

<input id="txtSomethingElse<%: Model.Id %>" class=input /> 
0

难道你不能想:

@Html.InputFor(m => m.FirstThing, new { @id = @Model.FirstThing.Id + "txtSomethingElse" }) 
@Html.InputFor(m => m.SecondThing, new { @id = @Model.SecondThing.Id + "txtSomethingElse" }) 
... 

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

相关问题