Как использовать @ Html.DisplayFor вместо @ Html.TextBoxFor - PullRequest
0 голосов
/ 04 июля 2018

Я хочу использовать @Html.DisplayFor вместо @Html.TextBoxFor в моем приложении.

Если я использую @Html.TextBoxFor, тогда я могу передавать значения в контроллер, но если я использую @Html.DisplayFor, тогда он каждый раз пропускает ноль.

Подскажите, пожалуйста, как использовать те же данные, которые я передаю в Textbox, которые должны передаваться в DisplayFor.

    @for (int counter = 0; counter <= Model.Employees.Count - 1; counter++)
        {
         <tr>
           <td>
          @Html.TextBoxFor(m => m.Employees[counter].Name, null, new { @class = "form-control" }) do not want to use

          @Html.DisplayFor(m => m.Employees[counter].Name, null, new { @class = "form-control" })   ///want to use
                </td>
    }

1 Ответ

0 голосов
/ 04 июля 2018

Если вы хотите, чтобы значения были включены в отправку формы, они должны быть привязаны к входу формы. Это верно для любой отправки формы, а не только для ASP.NET MVC.

Чтобы включить значения, которые нельзя редактировать, вы должны использовать

@Html.HiddenFor(m => m.YourPropertyHere)

, который генерирует элемент <input type="hidden" /> для этого свойства.

Итак, ваш пример будет выглядеть примерно так:

@for (int counter = 0; counter <= Model.Employees.Count - 1; counter++)
{
    <tr>
        <td>
            @Html.DisplayFor(m => m.Employees[counter].Name, null, new { @class = "form-control" })
            @Html.HiddenFor(m => m.Employees[counter].Name)
        </td>
    </tr>
}
...