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

144
Views
Use AJAX POST para devolver páginas de afeitar parciales

Busqué esto, probé las soluciones aceptadas de las preguntas que stackoverflow sugirió que podrían funcionar y estoy aquí como último recurso, después de probar todo lo que se me ocurrió o encontré. Me gustaría un botón en mi página de afeitar para enviar una solicitud de publicación, a través de una función ajax que estoy obligado a usar, y devolver una página de afeitar sin diseño.

HTML

 <button id="myawesomebutton">Go get a partial</button>

javascript

 var myawesomeajaxobject=new ajax('/myawesomeurl'); myawesomeajaxobject.done=function(dat) { document.getElementById('myawesomediv'),innerHTML=dat } myawesomeajaxobject.go('myawesomeparameter01=1&myawesomeparameter02=2');

El objeto AJAX que estoy obligado a usar agrega los siguientes encabezados:

 Content-type, application/x-www-form-urlencoded Access-Control-Allow-Origin, *

Además de agregar un '?' seguido de un código de tiempo de Unix al punto final de URL.

Según tengo entendido, la solicitud debe enviarse primero a la clase cshtml.cs detrás de la página de razor, que luego redirigirá a mi parcial.

No importa cómo nombre mi método de C#, onPost, myawesomeurl, muchos otros nombres, obtengo un error 404 en lugar de mostrar el parcial dentro myawesomediv .

Intenté agregar un token anti falsificación, establecí los valores CORS en el servidor para 'aceptar todo' e intenté enviar la solicitud directamente al onPost parcial, pero no llego a ninguna parte.

ACTUALIZAR.

Yo he añadido:

 services.AddRazorPages().AddRazorPagesOptions(options => { options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute()); });

a mi Inicio.

Mi javascript dice:

 var myawesomeajaxobject=new ajax('/myawesomeurl'); myawesomeajaxobject.done=function(dat) { document.getElementById('myawesomediv'),innerHTML=dat } myawesomeajaxobject.go('handler=myawesomeurl&myawesomeparameter01=1&myawesomeparameter02=2');

Este es el método del controlador en el archivo cshtml.cs :

 public void OnPostmyawesomeurl() { //myawesomecoded added, so I have a break point to hit. }

y sigo recibiendo un 404. ¿Es esto realmente posible en las páginas de afeitar?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Parece que está realizando una solicitud POST a un método de controlador con nombre. El controlador todavía necesita On[Http Method] incorporado en su nombre para que se pueda encontrar. Si se trata de una solicitud POST, el nombre del método del controlador debe ser OnPostMyAwesomeUrl .

También debe manejar el hecho de que la verificación de solicitud está integrada en Razor Pages, por lo que debe incluir el token en su solicitud AJAX ( https://www.learnrazorpages.com/security/request-verification#ajax-post- request-and-json ), o desactívelo para esa página por completo ( https://www.learnrazorpages.com/security/request-verification#opting-out ):

 [IgnoreAntiforgeryToken(Order = 1001)] public class IndexModel : PageModel { ... }
about 4 years ago · Juan Pablo Isaza Report

0

Gracias a todos por su entrada. Así es como logré los resultados deseados.

HTML

 <button id="myawesomebutton">Go get a partial</button>

javascript

 var myawesomeajaxobject=new ajax('/myawesomeurl'); myawesomeajaxobject.done=function(dat) { document.getElementById('myawesomediv'),innerHTML=dat } myawesomeajaxobject.go('/shared/myawesomepartial/?handler=myawesomehandler&myawesomeparameter01=1&myawesomeparameter02=2');

Puesta en marcha

 services.AddRazorPages().AddRazorPagesOptions(options => { options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute()); });

myawesomepartial.cshtml.cs

 public void OnPostmyawesomehandler(MyAwesomeModel myawesomemodel) { //Do something with myawesomemodel and return myawesomepartial.cshtml }

Era solo una cuestión de hacer que los nombres de los métodos de URL y punto final coincidieran.

about 4 years ago · Juan Pablo Isaza 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!