Asp.net mvc passant un objet C # à Javascript
J'ai le c# class dire des options plus comme AjaxOptions.
public class options
{
public string Url {get;set;}
public string httpMethod {get;set}
}
et une fonction javascript comme ceci
function dosomething(obj)
{
if (obj.Url!="" and obj.HttpMethod=="something")
loadsomething();
}
Maintenant dans mon Contrôleur de l'action
public class mycontroller : controller
{
public ActionResult WhatToDo()
{
options obj = new options{Url="someurl"};
return PartialView(obj);
}
}
à mon avis, j'ai besoin de cet objet type de chaîne que je devrais être en mesure de passer à ma méthode.
@model options
<script>
dosomething(@model.SomeFunctionToConverToString())
</script>
Donc j'ai besoin de cette SomeFunctionToConverToString méthode que je vais convertir cet objet string.
Grâce
source d'informationauteur Parminder
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure de l'utiliser comme vous le feriez pour tout autre type de sortie d'un modèle de propriété de votre point de vue. Juste référence à la propriété que vous souhaitez passer dans la fonction JS.
Voir ce post pour plus d'informations sur l'utilisation de Rasoir à l'intérieur de la JS
MODIFIER - quelque Chose qui pourrait vous surprendre, c'est que si votre URL est interrompue à partir de l'encodage HTML que le Rasoir n'a l'aide de la ci-dessus, vous pouvez utiliser le
@Html.Raw()
fonction qui se charge de transmettre l'Url de la propriété sans codage HTML.EDIT 2 - Et une autre SORTE de post à la rescousse! Vous allez probablement vous voulez convertir votre modèle JSON afin de l'utiliser dans une fonction Javascript. Alors...pour ce faire, vous aurez besoin de quelque chose dans votre modèle de vue de manipuler un objet JSON.
et dans votre contrôleur:
Et enfin la vue:
En utilisant cette méthode, votre fonction fonctionne comme prévu:
MODIFIER 3 Potentiellement le moyen le plus simple encore? Même principe que pour modifier les 2, mais c'est à l'aide de la Vue de JsonEncode le modèle. Il y a probablement quelques bons arguments de chaque côté si cela doit être fait dans la vue, de contrôleur ou de dépôt/de la couche de service. Cependant, pour faire la conversion, de la vue...
Essayez ceci:
Du boulot pour moi
Côté Client:
Alerte d'impression :
MVC, Razor Côté:
il y a aussi une erreur de syntaxe
notez les guillemets autour de @Modèle.Stringify() sont pour le javascript, donc les émissions de HTML sera:
Je vous recommande de regarder SignalRil permet serveur déclenché javascript rappels.
Voir Scott H site pour plus de détails: http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx
En résumé tu ...
Javascript Client:
Serveur:
Donc .. Clients.recevez en C# se termine le déclenchement de la chat.recevez fonction en javascript.
Il est également disponible via NuGet.
Vous pouvez utiliser
JavaScriptSerializer
.