У меня есть модель, которую можно правильно связать для отображения, но я не могу опубликовать обновленную версию.
Я могу отобразить страницу и ее список содержимого в форме для обновления в строго типизированном виде.view.
Но когда я публикую обновленную модель, т.е. если я изменил содержимое страницы, то опубликованная модель содержит детали страницы, но теряет связь между страницей и содержанием страницы.
Таким образом, когда я получаю страницу для целей отображения, расширенная страница PageContents содержит правильные детали.
Но когда я обновляю и публикую PageContents, запись на странице не содержится.может быть красная сельдь, но я использую Fluent nHibernate)
К сожалению, я не могу найти то, что мне не хватает.
Итак, вот сокращенная версия моего кода:
public class Page
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual string Title { get; set; }
public virtual IList<PageContent> PageContents { get; private set; }
public Page()
{
PageContents = new List<PageContent>();
}
public virtual void AddPageContent(PageContent pageContent)
{
pageContent.Page = this;
PageContents.Add(pageContent);
}
}
public class PageContent
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual string Description { get; set; }
public virtual string Content { get; set; }
public virtual Page Page { get; set; }
}
Page <%= Html.LabelFor(model => model.Title) %>:
<%= Html.TextBoxFor(model => model.Title, new { @class = "wide-input" })%>
<%= Html.ValidationMessageFor(model => model.Title) %>
Page <%= Html.LabelFor(model => model.Name) %>:
<%= Html.TextBoxFor(model => model.Name, new { @class = "wide-input" })%>
<%= Html.ValidationMessageFor(model => model.Name) %>
<%
foreach (var item in Model.PageContents)
{
%>
<%= Html.TextAreaFor(m => item.Content) %>
<%
}
%>
<p><input type="submit" value="Save" /></p>
<% } %>