Comment appeler vue partielle à l'aide de JQUERY
J'essaie de loadn vue partielle en utilisant ajax. Mais il me donne l'erreur que Internal char error
.
Je déboguer le code puis il appel l'action, ainsi que également en mesure de déboguer le le vue partielle, mais, après la dernière ligne de la vue partielle, il me donne internes char d'erreur.
ci-dessous est la vue partielle:
@model company.learn.data.Models.ProductViewModel
<div></div>
Code est comme suit:
public ActionResult LoadProducts()
{
RepositoryProductManager m = new Repository.ProductManager();
var p = m.RetrieveAllProducts();
var l = p.Select(o => new ProductViewModel() { Cost = o.Cost, Description = o.Description, Id = o.Id, ProductName = o.ProductName, ProductTypeName = o.ProductType.Name, ProductTypeId = o.ProductTypeId }).ToList().FirstOrDefault();
return PartialView("_LoadProducts",l);
}
ajax de jquery appel:
@section scripts
{
<script>
$.getJSON('@Url.Action("LoadProducts","ProductManagement")', null, function (data) {
alert('f');
//$('#ProductsDiv').html(data);
alert('f');
}
).error(function (e1, e2, e3) { alert(e3); }); //every time goes to alert this error.
</script>
}
Lorsque je supprime l'élément DIV partielle de la vue et de ne garder que la première ligne (la liaison du modèle)
alors il ne me donne pas d'erreur mais, whenevery je ajouter n'importe quel élément dans cette vue, puis il me donne l'erreur.
Merci de me guider pour le comportement bizarre.
grâce
OriginalL'auteur user3711357 | 2014-08-03
Vous devez vous connecter pour publier un commentaire.
Vous utilisez
$.getJSON
et dans le contrôleur, vous êtes de retour d'unePartialView
.Changer le
$.getJSON
àajax
d'appels et de définirdataType: "html"
.Oui, vous êtes les bienvenus!
Je le fais, mais quand je poste le formulaire, dans le contrôleur de côté, le modèle est Nul! Quelqu'un peut-il m'aider, s'il vous plaît?
OriginalL'auteur Saranga
Oui, essayez ajax post. au lieu de getJSON(). voir full ajax de la configuration si le ci-dessus ne fonctionne pas. si ne fonctionnent toujours pas s'il vous plaît laissez-moi savoir.
OriginalL'auteur gaurav
Vous pouvez utiliser jQuery $.get() comme suit:
OriginalL'auteur Dayan