Как работать с вложенными моделями в ASP.NET MVC - PullRequest
4 голосов
/ 28 июня 2010

Я искал хорошее рабочее решение о том, как правильно обрабатывать привязку модели с вложенными атрибутами.У меня есть одна модель, у которой есть список других дочерних моделей, как показано ниже:

public class Organization : IEntity
{
    [ScaffoldColumn(false)]
    public int ID
    {
        get; 
        set;
    }

    [LocalizedDisplayName("Goals")]
    public virtual ICollection<OrganizationGoal> Goals
    {
        get;
        set;
    }
}

В контроллере я пытаюсь обновить данные следующим образом:

[HttpPost]
public ActionResult Edit(string organizationIdentifier, FormCollection values)
{
    var organization = organizationService.GetByIdentifier(organizationIdentifier);

    if (TryUpdateModel(organization))
    {
       organizationService.Save(organization);
       return RedirectToAction("Edit");
    }

    return View("Edit");
}

Но TryUpdateModel всегда возвращаетложь и сообщения проверки не отображаются в пользовательском интерфейсе.Пользовательский интерфейс построен с использованием стандартного вспомогательного редактора MVC EditorFor.

Каков наилучший способ сделать это?Для довольно нормального сценария найти информацию не так просто.

Спасибо!

1 Ответ

0 голосов
/ 20 января 2011

Теперь столбец идентификатора запрашивается с помощью GetByIdentifier? Если так, почему вы передаете строку, но в определении она указана как int?

Также, читая о TryUpdateModel, кажется, что вместо этого вы можете использовать UpdateModel.

http://msdn.microsoft.com/en-us/library/dd460189.aspx

...