Вот как это устроено.
Давайте поговорим о:
- Бритва
Более чем уверен, что у вас есть класс A
.Когда вы нажимаете свой метод действия внутри контроллера, вы возвращаете View с моделью, имеющей тип A.
Вы создаете форму на основе того, как выглядит класс A
.Какими ценностями обладает Модель?Вероятно, все свойства будут иметь значение по умолчанию.Это то, что происходит в HTTP-запросе GET.
Волшебство происходит на POST.Если вы используете Razor, ваш метод действия, вероятно, примет в качестве параметра объект типа A
.ASP.NET MVC достаточно умен, чтобы просмотреть все свойства, которые вы хотите отправить обратно в контроллер, и отобразить в класс A
.
Имейте в виду, что Razor переводится в HTML.Это означает, что когда вы нажимаете на кнопку отправки, Razor не имеет власти там.
Javascript
После того, как ваша страница обработана, вы должны воспринимать все как HTML.Razor не может помочь вам в тот момент, когда вы обрабатываете событие submit
.Думая в терминах HTML, что, по вашему мнению, будет отображаться при написании @Html.Raw(Json.Encode(@Model))
?
Имейте в виду, что вы использовали Model
только для создания формы, которую вы представите пользователю (со значениями по умолчанию).Не следует ожидать, что свойства Model
будут обновляться каждый раз при заполнении формы (как в некоторых средах внешнего интерфейса).Я рекомендую вам попробовать это: просто нажмите CTRL + U на странице и посмотрите на эту конкретную строку.