N'modèle de liaison de travail par le biais de la chaîne de requête dans asp.net mvc
N'modèle de liaison de travail par le biais de la chaîne de requête ?
Si j'ai une requête du type :
GET /Country/CheckName?Country.Name=abc&Country.Id=0 HTTP/1.1
Serait la méthode suivante dans CountryController avoir son oCountry argument contenant l'Id et le Nom des propriétés avec des valeurs de la chaîne de requête ?
public ViewResult CheckCountryName(Country oCountry)
{
//some code
return View(oCountry);
}
Pour une raison que je suis arriver Id 0 et le Nom que la valeur null dans oCountry objet. Ce qui est absent ?
Oui mais pour les types primitifs comme string et int. Pas pour votre cas, Mais la chaîne de requête est laid
comment dois-je modifier ma méthode pour le faire fonctionner (obtenir les valeurs de chaîne de requête) ?
Je pense aussi que querystring paramètres sont moches, mais comment voulez-vous effectuer une opération de http sans elle?
aussi, si c'est destiné à être utilisé dans une page de recherche, comment l'utilisateur d'enregistrer la page avec les filtres qu'ils ont appliqué à partager avec quelqu'un d'autre, ou l'enregistrer dans la barre des favoris et de regarder à nouveau plus tard?
comment dois-je modifier ma méthode pour le faire fonctionner (obtenir les valeurs de chaîne de requête) ?
Je pense aussi que querystring paramètres sont moches, mais comment voulez-vous effectuer une opération de http sans elle?
aussi, si c'est destiné à être utilisé dans une page de recherche, comment l'utilisateur d'enregistrer la page avec les filtres qu'ils ont appliqué à partager avec quelqu'un d'autre, ou l'enregistrer dans la barre des favoris et de regarder à nouveau plus tard?
OriginalL'auteur Brij | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Oui, le modèle de liaison prend en charge la liaison de la chaîne de requête. Cependant, le même modèle de liaison règles s'appliquent ici aussi: les noms de propriété/expressions doivent correspondre à votre demande et à votre modèle.
Donc si vous avez un
Name
propriété, alors vous avez besoin d'avoir unName
clé dans la chaîne de requête. Si vous écrivezCountry.Name
le modèle de liaison de regarder d'abord pour une propriété appeléeCountry
et puis unName
bien sur que les pays de l'objet.De sorte que vous n'avez pas besoin de la
Country
préfixe pour vous les noms de propriété, de sorte que votre requête devrait ressembler à ceci:Ou si vous ne pouvez pas modifier la demande, vous pouvez spécifier le préfixe de votre paramètre d'action avec la
BindAttribute
:OriginalL'auteur nemesv