Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

177
Vistas
¿Cómo paso el valor del campo oculto modificado de la función ValidateForm JS al controlador MVC?

Tengo un campo oculto en mi vista y estoy tratando de agregarle un valor en la función de JavaScript validateForm(). Veo que el valor se está cambiando en la ventana de salida. Sin embargo, el modelo que se pasa al controlador como parámetro lo recibe como nulo.

Aquí está el código que he probado

Cshtml:

 @using (Html.BeginForm("ViewAch", "AchNew", FormMethod.Post, new { enctype = "multipart/form-data", id = "CreateACHForm", onsubmit = "validateForm()" })) { <label>First Name <span>*</span></label> @Html.TextBoxFor(m => m.FirstName, new { maxlength = 19, @class = "input-required form-control form-control-sm", id = "fname" }) @Html.ValidationMessageFor(m => m.FirstName, "") <label>First Name <span>*</span></label> @Html.TextBoxFor(m => m.FirstName, new { maxlength = 19, @class = "input-required form-control form-control-sm", id = "fname" }) @Html.ValidationMessageFor(m => m.FirstName, "") @Html.AntiForgeryToken(); @Html.HiddenFor(m => m.TokenizedPayloadNonce); <input type="submit" value="SignUp" class="btn btn-primary btn-lg btn-block" /> }

JavaScript:

 function validateForm() { var NewToken = callExternalSytem(); // retrieving value from the external system document.getElementById('TokenizedPayloadNonce').value = NewToken; }

Así es como lo estoy leyendo desde el controlador:

 [HttpPost] [ValidateAntiForgeryToken] public ActionResult ViewAch(AchProfile achProfile) { var token = achProfile.TokenizedPayloadNonce; }

Puedo acceder a los otros valores de campo, pero no a los que actualicé en validateForm(). ¿Hay algo que me estoy perdiendo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Con respecto a su caso, puede usar este método para enviar el valor actualizado a su Controller :

Primero cambiamos el tipo de su SignUp de submit a button y vinculamos el formulario de validateForm a su evento onclick :

 @using (Html.BeginForm("ViewAch", "AchNew", FormMethod.Post, new { enctype = "multipart/form-data", id = "CreateACHForm"})) { <label>First Name <span>*</span></label> @Html.TextBoxFor(m => m.FirstName, new { maxlength = 19, @class = "input-required form-control form-control-sm", id = "fname" }) @Html.ValidationMessageFor(m => m.FirstName, "") <label>First Name <span>*</span></label> @Html.TextBoxFor(m => m.FirstName, new { maxlength = 19, @class = "input-required form-control form-control-sm", id = "fname" }) @Html.ValidationMessageFor(m => m.FirstName, "") @Html.AntiForgeryToken(); <input type="hidden" id="myTokenizedPayloadNonce" name="TokenizedPayloadNonce"/> <input type="button" value="SignUp" class="btn btn-primary btn-lg btn-block" onclick="validateForm()" /> }

Una vez que se realiza el enlace, usamos Javascript para enviar su formulario al Controller . Esto vinculará el valor actualizado que requirió a su Model :

 function validateForm() { var NewToken = callExternalSytem(); // retrieving value from the external system document.getElementById('myTokenizedPayloadNonce').value = NewToken; document.getElementById('CreateACHForm').submit(); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda