簡體   English   中英

如何檢查呈現的局部視圖?

[英]How to check what rendered partial view?

我想在這些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/zh-CN/library/ee402926(v=vs.108).aspx

允許您將模型傳遞給局部視圖,在您的情況下,局部視圖可以是表示索引的整數

因此您將部分視圖更改為<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>

您可以執行類似的操作,例如說您的模型具有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" })
...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM