我有一個模型,我可以正確綁定顯示的目的,但我不能發佈更新的版本。ASP.Net MVC模型綁定
我可以在強類型視圖中以更新的形式顯示頁面及其內容列表。
但是,當我發佈更新後的模型,即如果我更改了pagecontents內容,則發佈的模型包含Pages細節,但失去了頁面和pagecontent之間的關係。
所以當我得到頁面的顯示目的擴展PageContents頁面包含正確的deatils。
但是,當我更新和Post PageContents不包含頁面條目。
(順便說一句可能是一個紅色的鯡魚,但我使用功能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}]。Content」,i),Model.PageContents [i] .Content )%>但問題仍然相同。當控制器收到頁面時,頁面包含一系列PageContents,爲了所有意圖和目的都是新的,並且它們不包含返回Page的引用。 – 2010-08-17 10:42:59
是的,我會沿着ViewModel路線走。我想我陷入了一些雙重思考! – 2010-08-17 13:38:16