2010-01-08 3 views
0

hey there - J'essaie d'utiliser asp.net mvc pour certaines choses comme d'habitude, mais j'ai un peu de problème.Utilisation du code MVC dans jQuery

À un moment de mon application, j'ai besoin de charger une vue et de passer un modèle spécifique - ce n'est pas une grosse affaire, sauf qu'elle concerne le modèle existant. Maintenant, RenderPartial ne fonctionne pas car cela ne fait que passer un modèle et ne frappe pas réellement le contrôleur - j'ai besoin de retourner au contrôleur pour passer le modèle à travers le ActionResult afin que son contenu puisse être retourné. J'ai donc pensé que j'utiliserais jQuery. # ('...'). load ('/ controller/action') a fonctionné dans le passé, alors pourquoi pas maintenant? Mais j'ai besoin de passer un paramètre à travers. J'ai essayé simplement d'ajouter ...

charger ('/ controller/action /' + <% = Model.Parameter%>) et cela n'a pas pris - donc quelqu'un sait-il comment faire? (ou peut-être un meilleur moyen de le faire?)

+0

Vous ne voulez pas dire '$ ('# someId'). Load ('/ controller/action');'? –

+0

oui. C'est ce que je veux dire. J'allais utiliser la charge de jQuery pour lancer l'actionresult et retourner la vue. – Ciel

+0

est '/ controller/action' renvoie la bonne page? –

Répondre

2

Vous pouvez utiliser MVC Futures/ASP.NET MVC 2 qui a une méthode RenderAction, vous permettant de revenir au contrôleur. Vous pouvez également transmettre le modèle dont vous avez besoin pour votre vue partielle en tant que propriété du modèle de vue parent, ma méthode actuelle. Ou stocker le nouveau modèle dans le ViewData, mais ce n'est pas très fortement typé et non recommandé.

+0

Existe-t-il un MVC Futures pour ASP.NET MVC 1.0? Ce n'est pas listé que je peux trouver. – Ciel

+0

http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471 –

0

Pourriez-vous être plus précis? Qu'est-ce qui n'a pas fonctionné à ce sujet? Si vous avez utilisé l'énoncé exact que vous avez inséré dans votre question, il y a un problème avec le fait que vous n'avez pas inclus la balise asp dans des guillemets simples, donc jquery interpréterait la valeur rendue comme une variable, et non comme une chaîne littérale.

...load('/controller/action/' + '<%= Model.Parameter %>') 
1

$ .load ('<% = Url.Action ("actionname", "ctlrname", nouveau {param = Modèle.Paramètre})%>'); marchera. Ou, les contrats à terme MVC a une méthode RenderAction qui vous permet de rendre une action en ligne.

Questions connexes