Asp.net mvc 2 更新模型后,值不';我不能反省这一观点

Asp.net mvc 2 更新模型后,值不';我不能反省这一观点,asp.net-mvc-2,model,updating,Asp.net Mvc 2,Model,Updating,我使用VisualWebDeveloper2010和ASP.NET以及MVC2创建了一个简单的客户管理模块,在该模块中,视图将允许输入名字、姓氏、地址等,提交后,新的“ID”将分配给CustomerModel实例的CustomerID属性 创建客户的控制器方法(CustomerController)如下所示: <HttpPost()> _ Public Function CreateCustomer(ByVal model As CustomerModel) As ActionRes

我使用VisualWebDeveloper2010和ASP.NET以及MVC2创建了一个简单的客户管理模块,在该模块中,视图将允许输入名字、姓氏、地址等,提交后,新的“ID”将分配给CustomerModel实例的CustomerID属性

创建客户的控制器方法(CustomerController)如下所示:

<HttpPost()> _
Public Function CreateCustomer(ByVal model As CustomerModel) As ActionResult
    model = Me.customerServiceClientValue.CreateCustomer(model)
    Return (View(model))
End Function
_
公共函数CreateCustomer(ByVal模型作为CustomerModel)作为ActionResult
model=Me.customerServiceClientValue.CreateCustomer(model)
返回(视图(模型))
端函数
我可以看到控件到达CreateCustomer()方法内部,它调用客户服务来创建客户。该服务还会返回一个具有新ID的客户。与方法中一样,从服务调用返回的客户实例被分配回传入的“model”变量。该模型实例在return语句中传递给“视图”。但是,当刷新视图时,我看不到customer ID字段的值

我对“客户ID”字段进行了以下标记:

<div class="editor-label">
    <%: Html.LabelFor(Function(model) model.CustomerID)%>
</div>
<div class="editor-field">
    <%: Html.TextBoxFor(Function(model) model.CustomerID)%>
    <%: Html.ValidationMessageFor(Function(model) model.CustomerID)%>
</div>

我做错了什么?尽管模型包含新的客户ID,为什么我没有在字段中获取客户ID?感谢你的帮助

感谢和问候


Dinesh Jayadevan

,因为
TextBoxFor
(和其他助手)总是首先查看要显示的post值。如果不存在post值,那么它将查看模型。这是因为如果表单有错误,您通常希望表单显示与发布的数据相同的数据,而不是一些可能已更改的模型数据

您可以调用
ModelState.Clear()来防止这种情况,但这不是一个好主意

更多信息