2010-03-23 2 views
0

Je ne sais pas si je comprends bien ai MVC si ma question n'a pas de sens, mais je suis en train de comprendre ce qui suit:Attribution d'une propriété du contrôleur MVC de la page Asp.Net

J'ai un code sur un contrôleur qui renvoie des données JSON. Les données JSON sont renseignées à partir d'une liste déroulante sur une page Asp.Net. J'ai pensé (incorrectement) que les variables de session seraient partagées entre le projet Asp.Net et le projet MVC. Ce que je voudrais donc faire (si c'est possible), est d'appeler un Sub sur le MVC qui définit une variable avant l'exécution de la requête JSON.

Je donne les résultats suivants:

Sub SetCountryID(ByVal CountryID As Integer) 
    Me.pCountrySelectedID = CountryID 
End Sub 

Ce que je peux appeler par ce qui suit:

Response.Write("http://localhost:7970/Home/SetCountryID/?CountryID=44") 

Mais Il en résulte alors une page blanche - encore une fois obviouslly totalement incorrect! Est-ce que je vais mal à propos de MVC ou est-ce que j'ai encore beaucoup d'apprentissage à faire?

Est-ce encore possible?

+0

Pourquoi ne transmettez-vous pas simplement la variable au contrôleur et l'utilisez-vous lorsque vous créez votre objet json? – CeejeeB

+0

Ce serait la solution parfaite mais c'est exactement ce que j'ai du mal à faire. Avez-vous un exemple que je peux apprendre? – JasonMHirst

Répondre

0

La route par défaut va gérer un argument id si votre action ressemble à ceci:

code converti de C# à la main s'il vous plaît excuser les erreurs

Function Lookup(ByVal id as Integer) as JsonResult 
    Dim db as New DbDataContext() 
    Return Json(GetMyDataAndReturnObject(), JsonRequestBehavior.AllowGet) 
End Function 

Appelez thusly (jQuery)

$.getJSON('/Controller/Lookup/' + $('#SelectId')[0].options[id].value, function(json) { 
     processResult(json); 
}); 
+0

Brillant, merci cheddar qui est à peu près répondu parfaitement. – JasonMHirst

0

Si vous publiez pour récupérer votre objet json, vous pouvez poster un champ supplémentaire contenant le CountryId, sinon passez juste le countryId à travers comme une chaîne de requête supplémentaire et ajouter un para supplémentaire sur votre action.

Questions connexes