У меня есть модель, которую я могу связать правильно для отображения, но я не могу опубликовать обновленную версию.ASP.Net MVC привязка модели
Я могу отобразить страницу и ее список содержимого в форме для обновления в строго типизированном виде.
Но когда я отправляю обновленную модель, т. Е. Если я изменил содержимое pagecontents, то опубликованная модель содержит детали Pages, но теряет связь между страницей и pagecontent.
Поэтому, когда я получаю страницу для показа, расширенная страница PageContents содержит правильные деатили.
Но когда я обновляю и размещаю страницуПрограммы, не содержит записи в Странице.
(BTW может быть отвлекающим маневром, но я использую 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>
<% } %>
спасибо за ваш ответ - я изменил свой код на следующий <% = Html.TextArea (string.Format ("PageContents [{0}]. Содержимое", i), Model.PageContents [i] .Content)%> но проблема остается прежней. Когда контроллер получает сообщение, страница содержит коллекцию PageContents, которая для всех целей и целей является новой и не содержит ссылки на страницу. –
Да, я спустился по маршруту ViewModel. Я думаю, что я попался в какой-то двойной мысли! –