MVC View htmlAttribute not working

2019-09-13 15:48发布

问题:

Can I know why the htmlAttribute of my textbox not working? I'm using @Html.BeginForm and only the part Hyperlink not following the other.

Below is my code.

    @using (Html.BeginForm())
    {
    @token

    <div class="form-horizontal">
    <h4>StoreDetail</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    @Html.HiddenFor(model => model.StoreId)


    <div class="form-group">
        @Html.LabelFor(model => model.NoOfSeat, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
        @Html.EditorFor(model => model.NoOfSeat, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.NoOfSeat, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.Label("Hyperlink", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
        @Html.TextBox("Hyperlink", ViewData["Hyperlink"], new { htmlAttributes = new { @class = "form-control", @readonly = "readonly" } })
        </div>
    </div>

Screenshot of the problem.

If I remove the

    new { htmlAttributes = new { @class = "form-control", @readonly = "readonly" } })

it will result in same view like it is not functioning.

回答1:

Replace your this syntax

new { htmlAttributes = new { @class = "form-control", @readonly = "readonly" } }

with

 new { @class = "form-control", @readonly = "readonly" }

The syntax you are using is supported for EditorFor Helper only New Features in ASP.NET MVC 5.1.