Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

63
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda