我创建了局部视图,局部视图中的元素看起来像这样(Razor Code):
<tr>
<td>
@Html.TextBoxFor(model => model.OtherReferenceNumber,new { @data_slmgui_name= "otherReferenceNumber", @style = "width: 45%" })
@Html.ValidationMessageFor(model => model.OtherReferenceNumber)
</td>
</tr>
我不想使用id(在input
标签上)。但是,当我查看页面源时,即使我没有添加它,也会显示该元素的id
属性。任何人都可以向我解释为什么会出现这种情况,以及如何让它停止出现?
以下是实际的HTML输出:
<tr>
<td>
<input data-slmgui-name="otherReferenceNumber"
data-val="true"
data-val-length="OtherReferenceNumber max length is 100"
data-val-length-max="100"
id="OtherReferenceNumber"
name="OtherReferenceNumber"
style="width: 45%;"
value="hjghj"
type="text">
</td>
</tr>
答案 0 :(得分:4)
它们是由Asp.net Mvc自动生成的,以摆脱它们做到这一点
@Html.TextBoxFor(model => model.OtherReferenceNumber, new {id="" /*more properties*/})
答案 1 :(得分:0)
HtmlHelpers,Html.TextBoxFor()
甚至Html.TextBox
将始终附加name
和id
,如果您希望对其进行更多控制,则可以轻松使用{{ 1}}
就像:
<input type="text" ...>
但是,请注意,如果没有<input type="text"
val="@Model.OtherReferenceNumber"
data-slmgui-name="otherReferenceNumber"
style="width: 45%" />
和name
,您将永远无法在Action中获取模型,并且需要浏览id
对象。
我建议你在承诺“不要使用id”部分之前看一些视频教程......
通过ASP.NET网站微软要求PluralSight开设这方面的课程,并且你的处置有full MVC course for free ...