Пользовательская модель представления не отображает значения в TextBoxFor TextBoxFor (Model => Model.Object1.Name) - PullRequest
2 голосов
/ 11 апреля 2011

У меня есть пользовательская модель, которая содержит другой пользовательский объект (Objects1.Object2), я правильно заполняю объект перед отображением в представлении и

<%: Model.Object1.Name%> отображаетпока что данные верны <%: Html.TextBoxFor (model => model.Object1.Name)%> не отображает никаких данных.

Я новичок в MVC и хотел бы обойти эту проблему, так как это остановка для создания пользовательской модели данных.

Любая информация очень ценится.

1 Ответ

2 голосов
/ 11 апреля 2011

Вы пытаетесь изменить это в действии POST?Если вы заметили, что помощники HTML, такие как TextBoxFor, сначала будут читать данные из состояния модели, а затем из модели.Поэтому, если ваше действие публикации выглядит следующим образом:

[HttpPost]
public ActionResult Index(SomeViewModel model)
{
    model.Object1.Name = "some new value";
    return View(model);
}

, вам нужно удалить его из состояния модели, или вы всегда получите старое значение:

[HttpPost]
public ActionResult Index(SomeViewModel model)
{
    ModelState.Remove("Object1.Name");
    model.Object1.Name = "some new value";
    return View(model);
}

Если вы делаете это вДействие GET: не должно быть никаких проблем с отображением значения:

public ActionResult Index()
{
    var model = new SomeViewModel
    {
        Object1 = new TypeOfObject1
        {
            Name = "foo bar"
        }
    };
    return View(model);
}

, а затем в представлении:

<%= Html.TextBoxFor(x => x.Object1.Name) %>

должно отображать правильное значение.

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