我有一个使用c#MVC4和jQuery / AJAX开发的Web应用程序。我想要做的是向用户显示一个视图,他们可以在不提交整个表单的情况下更新特定模型的特定属性。例如,数据库中的一个实体对象是“任务”类。这个类有几个属性(TaskName,TaskDescription等)。想法是显示一个列出这些属性的视图,用户可以单独点击每个属性,显示一个填充了他们可以编辑的属性值的文本框。我希望能够根据需要按需保存每个编辑(使用每个文本框旁边的按钮),并在每个字段上包含验证。我如何构造控制器/ viewModel以适应这种情况?我会为每个字段设置多个控制器功能吗?一个“编辑”功能接受整个模型?
答案 0 :(得分:3)
实际上,与网站的大多数其他组件相比,提交表单中的数据量非常小,因此提交“整个表单”没有问题。您可以在每次更新时将整个模型提交回发布操作(您可以为同一表单提供多个提交按钮),以及使用新模型更新数据库的单个控制器操作。
但是,如果您确实希望单独更新每个组件,那么您可以为每个值提供单独的表单,这些表单提交此值和TaskId。这些将提交给不同的操作,每个操作都必须找到您要更新的模型并进行更新。
就我个人而言,我更喜欢前者,因为它使您的架构简单,并且需要更少的代码。