2010-03-17 110 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,这使得创建表单更加容易。