我有一个模型,JobApplicationForm。此模型分为短应用程序和长应用程序。这意味着第一页发布了模型的某些属性,最后三页完成后,另一页会更新模型以完全填写。
public class JobApplicationForm
{
public int Prop1 {get; set}
public string Prop2 {get; set;}
public string Prop3 {get; set;}
public string Prop4 {get; set;}
public string Prop5 {get; set;}
public int CompletionStatus {get; set;}
}
在1st Post操作中,模型填充Prop1和Prop2,并将CompletionStatus设置为1。这是一篇在完成1页表格后的帖子。
然后在第二个Post操作中,还有3个页面填写Prop 3、4、5,并在提交最终页面时将CompletionStatus设置为4。
因为表格的第二部分是3页,合在一起。有没有一种方法可以使用AJAX在各自的页面上简单地将completionStatus更新为2和3?当我尝试使用AJAX发布时,我在网上发现模型必须完全填写,并且找不到任何人只更新一个属性。在更改completionStatus时,我根本不想更新视图,只是简单地尝试更新模型的属性。
Ajax(状态是在其他地方定义的int变量(
$('.next.button').click(function() {
$.post('/Home/UpdateCompletionStatus', {completionStatus : status});
});
我创建的第三个控制器是为了更新这个属性。
[HttpPost]
public ActionResult UpdateCompletionStatus([FromBody]JobApplicationForm model, int status)
{
if (ModelState.IsValid)
{
model.CompletionStatus = status;
}
return new EmptyResult();
}
我解决了自己的问题。它没有更新的原因是模型绑定混乱。我在控制器中调用了paramater状态,但在ajax中调用了它completionStatus。