2010-03-17 53 views
0

我有一個名爲「name」的屬性的對象。 該對象具有一個名爲「name」的屬性。ASP.NET MVC綁定問題

Transaction.name 

Transaction.TransactionItem 

TransactionItem.name 

我交易對象綁定到局部控制照例:

Html.TextBox("name", Model.name)%> 

模型是一個事務處理對象。

我結合TransactionItems:

<% if (Model.mtTransactionItem != null) 
    { 
     foreach (var item in Model.mtTransactionItem) 
     { %> 
    <tr> 
     <td> 
      <%= Ajax.ActionLink(item.name, "ShowItem", new { id = item.id }, new AjaxOptions { UpdateTargetId = "dialog-form" })%> 
     </td> 

當我通過調用Ajax更新事務項中的所述一個我通過整個事務對象到局部視圖。

當我調試時,我檢查Model.name屬性,它有一個適當的值。 但在頁面上顯示的值名稱爲TransactionItem,而不是名稱Transaction的值。

我在做什麼錯?

我在MVC 1.0和MVC 2.0框架中檢查了這個問題。

回答

1

您的描述不清楚,但我會給你很好的建議。相反,這樣的創造領域:

Html.TextBox("name", Model.name) 

使用

Html.TextBox("transaction.name", Model.Name) 

然後

ActionResult Save(Transaction transaction); 

前綴的價值是相同的功能參數。

如果顯示在同一頁面上的項目組件,使用

Html.TextBox("transactionitems[i].name", Model.name) 

或一個項目

Html.TextBox("transactionitem.name", Model.name) 

不要爲頁面上的不同組件都使用相同的字段名稱,因爲它可能會導致ModelState出現問題。閱讀有關使用前綴,這將有助於節省您的一些問題。

還請記住,使用MVC 2您有DataAnnotations,這使得創建表單更加容易。