Передача модели между видом и контроллером
Я хочу изменить значения свойств объекта в MVC.
@model Test.Web.Models.CountryLanguageModel <div class="col-md-8 col-md-offset-2"> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Language Edit</legend> @Html.HiddenFor(model => model.CountryId) <div class="editor-label"> @Html.LabelFor(model => model.CountryLanguage.LanguageName) </div> <div class="editor-field"> @Html.EditorFor(model => model.CountryLanguage.LanguageName) </div> <div class="editor-label"> @Html.LabelFor(model => model.CountryLanguage.Message) </div> <div class="editor-field"> @Html.EditorFor(model => model.CountryLanguage.Message) </div> <br /> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Save" class="btn btn-default" /> </div> </div> </fieldset> } </div>
И в контролере. У меня есть два способа.
public ActionResult LanguageEdit(int id) { var model = new CountryLanguageModel(); model.CountryLanguageId = id; var CountryLanguage = CountryService.Get(x => x.LanguageId == id); model.CountryLanguage = CountryLanguage; return View(model); } [HttpPost] public ActionResult LanguageEdit(CountryLanguageModel CountryLanguageModel) { if (ModelState.IsValid) { } var model = new CountryLanguageModel(); model.CountryLanguageId = CountryLanguageModel.CountryLanguageId; var CountryLanguage = CountryService.Get(x => x.LanguageId == model.CountryLanguageId); model.CountryLanguage = CountryLanguage; return View(model); }
В первом методе он работает правильно
public ActionResult LanguageEdit(int id)
Мой вопрос заключается во втором методе
public ActionResult LanguageEdit(CountryLanguageModel CountryLanguageModel)
Я не вижу изменений в модели.
Что я уже пробовал:
Например, я нашел во втором способе.
model.CountryLanguage
является нулевым. Это означает, что я не смог пройти модель.
F-ES Sitecore
Вы всегда должны использовать CountryLanguageModel, а не создавать новый экземпляр модели. Если CountryLanguage равен null, то используйте отладчик для пошагового просмотра кода, чтобы увидеть, где он идет не так. Это " CountryLanguageModel.CountryLanguageId " правильно? Является ли "CountryLanguage" нулевым после CountryService. Get?
Member 12658724
Вы правы. Я не должен создавать новый экземпляр. CountryLanguage не является нулевым.