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

62
Vistas
no se pueden pasar datos de javascript a Model Function en Razor Pages

Estoy tratando de pasar el elemento de entrada al método OnPost en mi proyecto Razor Pages, pero nunca se toma el método.

este es mi formulario

 <p style="text-align: left; font-size: 12px;">Podstawowe dane</p>
 <p><input type="text" class="form-control" placeholder="Imię" name="name" /></p>
 <p> <input type="text" class="form-control" placeholder="Nazwisko" name="surname" /></p>
 <p><input type="text" class="form-control" placeholder="Telefon" name="mobile" /></p>
 <button type="submit" class="" style="" asp-page-handler="UpdatePersonalData">Dalej</button>
 <input id="btnWork" type="submit" value="Work" onclick="writeLog(name,surname,mobile);" />

Esta es mi función:

 <script>
 function writeLog(name, surname, mobile) {
 fetch(`?handler=UpdatePersonalData&name=${name}&surname=${surname}&mobile=${mobile}`);
 }
</script>

Esta es mi función modelo:

 }
 public async Task<IActionResult> OnPostUpdatePersonalData(string name, string surname, string mobile)
 {
 var user = await UserManager.GetUserAsync(User);
 _AccountModel.UserId = user.Id;
 _AccountModel.Mail = user.Email;
 await _accountRepository.UpdatePersonalData(_AccountModel, name, surname, mobile);
 return RedirectToPage("/Account/DataForm/CompanyData");
 }

si me pudieras ayudar te lo agradeceria

##ACTUALIZAR

Después de la conversación con el usuario en stackoverflow

esto es completo

https://pastebin.com/WxCihCWM

Al principio pensé que podía hacer múltiples solicitudes de publicación como con un formulario estático, pero por lo que puedo ver, tengo que actualizarlo de una vez.

almost 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

fetch envía una solicitud GET de forma predeterminada, debe configurarlo para enviar POST. También debe pasar el token antifalsificación.

https://learn.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-6.0#javascript-1

Prueba esto:

 
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Antiforgery
@{
 var requestToken = Antiforgery.GetAndStoreTokens(HttpContext).RequestToken;
}

<p style="text-align: left; font-size: 12px;">Podstawowe dane</p>
<p><input id="name" type="text" class="form-control" placeholder="Imię" name="name" /></p>
<p><input id="surname" type="text" class="form-control" placeholder="Nazwisko" name="surname" /></p>
<p><input id="mobile" type="text" class="form-control" placeholder="Telefon" name="mobile" /></p>
<input id="btnWork" type="submit" value="Work" onclick="writeLog()" />

<input id="RequestVerificationToken" type="hidden" value="@requestToken" />

@section Scripts {
 <script>
 function writeLog() {
 const name = document.getElementById('name').value;
 const surname = document.getElementById('surname').value;
 const mobile = document.getElementById('mobile').value;

 const url = `?handler=UpdatePersonalData&name=${name}&surname=${surname}&mobile=${mobile}`;
 
 fetch(url, {
 method: 'POST',
 headers: {
 RequestVerificationToken:
 document.getElementById('RequestVerificationToken').value
 }
 });
 }
 </script>
}
almost 4 years ago · Santiago Trujillo Denunciar

0

Puede intentar usar el siguiente código, al hacer clic en el botón Trabajar, la función js writeLog() llamará al controlador OnPostUpdatePersonalData :

ver (al hacer clic <input type="button"/> no se enviará el formulario):

 <form method="post" id="myForm">
 <p style="text-align: left; font-size: 12px;">Podstawowe dane</p>
 <p><input type="text" class="form-control" placeholder="Imię" name="name" /></p>
 <p> <input type="text" class="form-control" placeholder="Nazwisko" name="surname" /></p>
 <p><input type="text" class="form-control" placeholder="Telefon" name="mobile" /></p>
 <button type="submit" class="" style="" asp-page-handler="UpdatePersonalData">Dalej</button>
 <input id="btnWork" type="button" value="Work" onclick="writeLog()" />
</form>

js:

 function writeLog() {
 $.ajax({
 type: "POST",
 url: "?handler=UpdatePersonalData",
 data: $("#myForm").serialize(),
 headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
 success: function(data) {

 }
 });

 }

resultado:

ingrese la descripción de la imagen aquí

almost 4 years ago · Santiago Trujillo 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