2013-08-22 24 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" }) 
... 

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

相關問題