Asp.net mvc asp.NETMVC如何保存?

Asp.net mvc asp.NETMVC如何保存?,asp.net-mvc,Asp.net Mvc,我有以下型号: 客户: 身份证 名字 地址 电话 传真 我从控制器添加了一个基于上述模型的编辑视图。我修改了编辑视图,只允许编辑电话和传真字段(删除了其余部分)。当我提交它时,我得到一个错误。如果我保持编辑视图不变(5个字段),它就可以工作。但是,我只想允许在最后两个字段中进行更改 我迷路了,请帮帮我。谢谢:)如果您正在使用MVC功能填充您的实体/类,即您的操作标志如下所示: ViewResult MyAction(MyObject object) { ... Save(MyObje

我有以下型号:

客户:

  • 身份证

  • 名字

  • 地址

  • 电话

  • 传真

我从控制器添加了一个基于上述模型的编辑视图。我修改了编辑视图,只允许编辑电话和传真字段(删除了其余部分)。当我提交它时,我得到一个错误。如果我保持编辑视图不变(5个字段),它就可以工作。但是,我只想允许在最后两个字段中进行更改


我迷路了,请帮帮我。谢谢:)

如果您正在使用MVC功能填充您的实体/类,即您的操作标志如下所示:

ViewResult MyAction(MyObject object) {
  ...
  Save(MyObject);
}
然后,您需要确保将另一个字段(不可编辑)作为可见信息或使用Html.Hidden包含在表单范围内,以确保您有一个完全填充的对象。请记住,web是无状态的,服务器不知道您正在编辑哪个记录,除非它有这样做的密钥


另一个选项是从数据库中检索原始对象(您仍然需要主键),从表单数据中更新字段,然后提交更改。我们需要知道具体的错误才能进一步提供帮助,您正在使用的代码也会有很大的帮助。

如果不知道更多,我想这与将null绑定到模型中的非null属性有关。你能给我更多关于模型的细节吗,错误


如果您使用的是默认的mvc模型绑定器,那么它将只绑定您提交的字段。因此,要么以隐藏方式提交,要么不使用模型绑定器,并手动将Request.Form中的变量映射到从数据库中提取的模型副本中。

请提供模型中字段的类型以及收到的错误消息。您好:)ID=int,Name+Address+Phone+Fax=nvarchar感谢Hanks Lazarus!使用Html.Hidden like suggered.代替隐藏值在url中传递模型的id,如/controller/action/id。然后在将模型传递到更新方法/服务层/存储库之前,更新action方法中缺少的属性和id。保持视图标记更清晰