目前我正在使用asp.net mvc view
我使用下面的代码创建表单。
@{
T4.Models.Order o = new T4.Models.Order();
}
@using (Html.BeginForm("Create", "Default5", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Order</h4>
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => o.CustomerID, new {@class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model=>o.CustomerID)
@Html.ValidationMessageFor(model => o.CustomerID)
</div>
</div>
</div>
}
此代码渲染完美但问题是它使用对象名称的前缀进行渲染。
在html代码下方显示
<input class="text-box single-line" data-val="true" data-val-required="The CustomerID field is required." id="o_CustomerID" name="o.CustomerID" type="text" value="">
你可以看到这个html输入控件有 id =&#34; o_CustomerID&#34; 。我希望它只用 id =&#34; CustomerID&#34; <呈现/强>
我不知道为什么它将对象名称作为前缀。
请帮帮我。
谢谢。
答案 0 :(得分:0)
无需初始化T4.Models.Order类的对象。
@{
T4.Models.Order o = new T4.Models.Order();
}
将以上代码替换为: @model T4.Models.Order
然后简单使用:
<div class="form-group">
@Html.LabelFor(model => model.CustomerID, new {@class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model=> model.CustomerID)
@Html.ValidationMessageFor(model => model.CustomerID)
</div>
</div>