Я использую ASP.NET MVC (1.0), Spark View Engine (1.0) и SubSonic (3.0.0.3).
У меня возникли проблемы с корректной работой представления "Редактировать". Итак, в моем контроллере у меня есть следующее действие контроллера, которое отображает представление формы редактирования:
[AcceptVerbs(HttpVerbs.Get)]
public virtual ActionResult Edit(string name)
{
var plot = Plot.SingleOrDefault(p => p.UserID == LoggedInUser.ID && p.UrlFriendlyName == name);
// ViewData["plot"] = plot;
return View(plot);
}
Форма в этом представлении отправляет обратно к следующему действию контроллера:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Edit(Plot plot)
{
var validator = new PlotValidator();
try
{
var results = validator.Validate(plot);
if (!results.IsValid)
{
...
}
}
}
Проблема, с которой я столкнулся, заключается в том, что первое действие контроллера фактически не заполняет форму значениями из объекта Plot, переданного ей. Единственный способ получить его для заполнения формы - добавить график в ViewData:
ViewData["plot"] = plot;
Это заполняет форму редактирования, но когда я редактирую значения и отправляю его обратно во второе действие контроллера, указанное выше, он просто отправляет обратно, в основном, новый график с новыми значениями, а не график, отправленный в форму редактирования с обновленными значениями.
Я уверен, что, возможно, мне просто не хватает чего-то простого, но я не могу понять, что это такое. Все поля в моей форме имеют идентификаторы с префиксом «plot».
Кто-нибудь знает / видит, что я делаю не так? Спасибо.