2

我有一个使用助手@model MyNamespace.Customer创建的表单定义的字符串类型视图。Html.BeginForm( "NewCustomer", "CustomerReg", FormMethod.Post )

我的 CustomerRegController 控制器上的 NewCustomer 操作看起来像

[HttpPost]
public ViewResult NewCustomer( MyNamespace.Customer objCustomer )

我正在从页面上的模型绑定字段“填充”客户字段的一部分。

当我提交时,我进入了正确的操作,但 objCustomer 都是初始值。我虽然可以通过这种方式传递强类型数据;难道我做错了什么?

4

1 回答 1

1

您的视图是强类型的这一事实@model MyNamespace.Customer并不意味着该模型会在提交表单时以某种方式自动发布到您的操作中。基本上,如果您希望将此属性传递给您的 POST 操作,则需要为要在表单中检索的每个属性设置输入字段。

还要确保该Customer对象是一个带有默认(无参数)构造函数的 POCO,其中您要检索的每个属性都有公共 getter 和 setter。否则默认模型绑定器将永远无法反序列化对该模型的请求。这个问题的理想解决方案是使用视图模型,它是您专门设计的一个类,以满足您的视图要求并停止将您的域模型传递给它。这个视图模型当然会有一个默认的构造函数和公共的 setter 和 getter,用于你想要检索的所有属性。

于 2013-08-07T20:36:03.370 回答