Tengo un modelo, JobApplicationForm. Este modelo se divide en una aplicación corta y una aplicación larga. Lo que significa que la primera página publica ciertos atributos para el modelo, y una vez que se terminan las últimas 3 páginas, otra publicación actualiza el modelo para que se complete por completo.
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;} }En la acción Primera publicación, el modelo completa Prop1 y Prop2, y establece CompletionStatus = 1. Esta es una publicación después de completar 1 página del formulario.
Luego, en la acción 2nd Post, hay 3 páginas más que completan Prop 3, 4, 5 y establece CompletionStatus = 4 cuando se envía la página final.
Ya que la 2da parte del formulario son 3 páginas que vienen juntas. ¿Hay alguna manera de usar AJAX para simplemente actualizar el estado de finalización a 2 y 3 en sus respectivas páginas? Al intentar publicar usando AJAX, descubrí en línea que el modelo debe completarse por completo y no puedo encontrar a nadie que solo actualice una propiedad. No estoy tratando de actualizar la vista en absoluto cuando cambio el estado de finalización, simplemente intento actualizar la propiedad del modelo.
Ajax (el estado es una variable int definida en otro lugar)
$('.next.button').click(function() { $.post('/Home/UpdateCompletionStatus', {completionStatus : status}); });3er controlador que creé para actualizar esta propiedad.
[HttpPost] public ActionResult UpdateCompletionStatus([FromBody]JobApplicationForm model, int status) { if (ModelState.IsValid) { model.CompletionStatus = status; } return new EmptyResult(); }Resolví mi propio problema. La razón por la que no se actualizó fue porque el enlace del modelo está confundido. Llamé al estado del parámetro en el controlador, pero luego en el ajax lo llamé completeStatus .