Je me demande pourquoi la chaîne de requête est préférée lors de l'obtention de valeurs à partir d'une requête utilisateur. Où? 1) Code de System.Web.Mvc.DefaultModelBinder ressemble à ceci (seulement une partie de celui-ci):Retour du formulaire, de la chaîne de requête, des valeurs de cookie par priorité dans ASP.NET MVC
HttpRequestBase request = controllerContext.HttpContext.Request;
if (request != null)
{
if (request.QueryString != null)
{
values = request.QueryString.GetValues(modelName);
attemptedValue = request.QueryString[modelName];
}
if ((values == null) && (request.Form != null))
{
invariantCulture = CultureInfo.CurrentCulture;
values = request.Form.GetValues(modelName);
attemptedValue = request.Form[modelName];
}
}
2) Si j'ai une méthode dans le contrôleur avec cette signature:
public ActionResult Save(int? x, string y) {...
la les paramètres (x, y) sont liés aux valeurs de la chaîne de requête, pas de la forme. Je suppose que les valeurs de Request.From ont une priorité plus élevée que Request.QueryString. Editer: Je vois que le second cas est causé par le premier (DefaultModelBinder), ai-je raison?
Quelle est la motivation derrière?
c'est 6 à sens unique, une demi-douzaine à l'autre. Je pense que cela s'applique probablement à la poste de Darryl ci-dessous avec cohérence –