Я пытаюсь создать метод действия MVC, который позволяет пользователям постепенно просматривать последовательность записей базы данных. Каждый раз, когда пользователь публикует обновление, оно отправляется в базу данных, а новая запись извлекается и отображается для проверки.
Однако мое представление MVC, по-видимому, объединяет данные как из опубликованной модели представления, так и из новой модели представления, созданной в результате запроса к базе данных. Когда представление просто отображает значения свойств из модели представления, оно правильно использует значения из переданного ему экземпляра модели представления, но когда оно привязывает элемент управления HTML-формы к свойству модели представления, оно использует значения из опубликованной модели представления. Это означает, что одно представление может отображать два разных значения для одного свойства в одном экземпляре модели представления:
Вот очень упрощенная версия метода действия...
public ActionResult Index(MyViewModel model)
{
if (ModelState.IsValid)
{
// Write the posted model data to the repository
// ...
// Retrieve a new entity for the user to work on
var alternate = new MyViewModel { Name = "New Name" };
return View(alternate);
}
return View(model);
}
... и модель представления...
public class MyViewModel
{
[Required]
public string Name { get; set; }
}
... и вид, который использовался для создания приведенного выше изображения...
@model Mvc4TestApplication.ViewModels.MyViewModel
Name: @Model.Name
@using (Html.BeginForm())
{
@Html.LabelFor(model => model.Name)
@Html.TextBoxFor(model => model.Name)
<input type="submit" value="Submit"/>
}
Кажется, я неправильно понял, как представления MVC обнаруживают данные своей модели. Есть ли какой-то альтернативный синтаксис, который я должен использовать, чтобы явно указать представлению, чтобы связать его элементы управления формой с переданной ему моделью представления?
Спасибо,
Тим.