Сохранение свойств в моделях в ASP.NET MVC (с Binder?) - PullRequest
0 голосов
/ 13 октября 2009

С учетом следующего кода:

Модель

class Log
{
   ...
   Ticket Ticket { get; set; }
   string Message { get; set; }
}
class Ticket
{
   ...
   Importance Importance { get; set; }
   string Name { get; set; }
   ...
}

View

<%@ Language="C#" Inherits="System.Web.Mvc.ViewPage<Models.Log>" %>
...
<%= Html.DisplayFor(l => l.Ticket.Name) %>
<%= Html.EditorFor(l => l.Message) %>
<%= Html.EditorFor(l => l.Ticket.Importance) %>
...

Действия контроллера

[HttpGet]
public ActionResult Update(int id)
{
    Ticket t = _tickets.Get(id);
    return View(new Log { Ticket = t });
}

[HttpPost]
public ActionResult Update(Log l)
{
   // My problem is here:
    l.Ticket.Name; // This is null
    l.Ticket.Importance; // while this one is still set
}

Есть ли способ сохранить Ticket в Log, который передан?

1 Ответ

3 голосов
/ 13 октября 2009

Имя будет выведено для отображения в виде обычного текста, что означает, что переменная не будет возвращена на вашу страницу как часть вашего сообщения, поскольку она не является частью формы. Обходные пути - поместить его в скрытое поле или найти модель как часть метода Update, а затем вызвать UpdateModel для полученного элемента.

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