对象名称作为输入控件

时间:2016-05-08 15:09:52

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor razorengine

目前我正在使用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; <呈现/强>

我不知道为什么它将对象名称作为前缀。

请帮帮我。

谢谢。

1 个答案:

答案 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>