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

128
Visualizações
Solicitud de publicación de Ajax MVC

Tengo esta función JQuery:

 function EditContactPost() { var urlEditPost = $("#hdnInfo").data("url_add_contact"); var test = $("#formEditContact").serialize(); alert(test); $.ajax({ type: 'post', url: urlEditPost, data:{ marketingContactVM: test }, }) }

Estoy haciendo una alerta como ven y estoy viendo que la variable test tiene la forma serializada correctamente con todos los valores. Pero cuando la acción del controlador recibe esta solicitud en el lado del servidor, marketingContactVM siempre es nulo. ¿Por qué está pasando esto? La acción de mi controlador se ve así:

 [HttpPost] public ActionResult AddContact(MarketingVM marketingContactVM) //always null { some code... }

En caso de que esta sea mi clase modelo, contiene otra lista dentro:

 public class MarketingVM { public IEnumerable<string> States { get; set; } public List<MarketingVM> MarketingList { get; set; } public string Firstname { get; set; } public string Lastname { get; set; } public string Company { get; set; } public string Address { get; set; } public string City { get; set; } public string State { get; set; } public string Zip { get; set; } public string Country { get; set; } public string Phone { get; set; } public string Fax { get; set; } public string Mail{ get; set; } public string URL { get; set; } public bool IsTrue{ get; set; } public int OtherId{ get; set; } }

Revisé la pestaña Red en DevTools y esta es la Request URL:http://localhost:56602/ControllerName/AddContact , eso debería estar bien. Pero los datos se envían como FormData , así:

 marketingContactVM:Company=Microsoft+Company&Email=user10%40email.co&First= Auto&Last=Mapper&Phone=98797988997&Fax=&URL=ww.auto.org&Adress=automapper+ street&City=auto+city&State=FL&Zip=33654&Country=USA&MarketingContacts%5B0%5D .Name=1%2F03%2F2012+1%3A15+PM&MarketingContacts%5B0%5D.IsSelected=false

.. y así. Tal vez la forma en que se envían los datos... Creo que el formato correcto debería ser:

marketingContactVM: Company=Microsoft Company Email=user10@email.co First=Charles Last=Johnston Phone=98797988997 Fax=989898 URL=ww.auto.org Adress=North streetCity=Sacramento State=FL Zip=33654 Country=USA MarketingContacts.Name=Piotr MarketingContacts.IsSelected=false

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

ya que está serializing el formulario, no necesita agregarlo en el objeto json

 data:{ marketingContactVM: test },

en su lugar, simplemente pase el objeto serializado como este

 $.ajax({ type: 'post', url: urlEditPost, data:test, })
about 4 years ago · Santiago Trujillo Relatório

0

Prueba esto:

 $.ajax({ url: urlEditPost, method: "POST", data: { marketingContactVM: test }, dataType: "json" });
about 4 years ago · Santiago Trujillo Relatório

0

Agregue la propiedad contentType . De esta forma, AP.NET MVC sabrá deserializar el cuerpo de la solicitud como JSON.

 function EditContactPost() { var urlEditPost = $("#hdnInfo").data("url_add_contact"); var test = $("#formEditContact").serialize(); alert(test); $.ajax({ type: 'post', url: urlEditPost, data:{ marketingContactVM: test }, contentType: 'application/json' }) }

PD: También deberías usar data: JSON.stringify(test) .

about 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