Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

66
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!