如何检查渲染的局部视图

本文关键字:局部 视图 何检查 检查 | 更新日期: 2023-09-27 18:28:36

我想在这些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/en-us/library/ee402926(v=vs.108).aspx

允许您将模型传递给局部视图,在您的情况下,局部视图可以是表示索引的int

因此局部视图更改为<input id="txtSomethingElse_@Model.ToString()" 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>

你可以做一些事情,比如说你的模型有一个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" })
...

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