@ Html.TextBoxFor (m => m.Id) перенастраивает неправильное значение для Id - PullRequest
0 голосов
/ 06 ноября 2019

В моем домашнем контроллере у меня есть метод действия для формы редактирования, настроенный так:

public ActionResult Edit(int id)
{
    Person p = DbPerson.GetPerson(id);

    return View(p);
}

Вид:

@model Person

<h4 class="leftBG">Edit Form</h4>

id is : @Model.Id<br />
Name is : @Model.Name<br /><br />

@Html.LabelFor(m => m.Id, new { })
@Html.TextBoxFor(m => m.Id, new { })

@Html.LabelFor(m=>m.Name, new { })
@Html.TextBoxFor(m => m.Name, new { })

, когда я перехожу к: home/edit/1 Я получаю человека с id = 1, и все работает как положено ..

Однако, если я перехожу на home/edit/199 (в базе данных нет человека с id = 199), DbPerson.GetPereson возвращаетчеловек с id = 0

Однако, на мой взгляд, текстовое поле для идентификатора показывает: 199, я не уверен, почему ...

Это ожидаемое поведение?

почему Model.Id равен 0, а в текстовом поле отображается значение 199?

1 Ответ

0 голосов
/ 06 ноября 2019

Попробуйте использовать ModelState.Clear ();прежде чем вы вернетесь. Это может зависеть от старых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...