J’utilise la validation à distance avec la validation jQuery.
J’essaie d’appeler mon code côté serveur dans MVC, mais le problème est que ma variable est dans une classe nestede:
public class Customer { public State HouseState {get;set;} } public class State { public ssortingng Name {get;set;} }
Dans mon * .cshtml, j’ai ceci:
@Html.TextBoxFor(m => m.HouseState.Name, new { placeholder = "State Name"})
J’ajoute une validation avec ceci:
$.validator.addMethod("verify", verify); $('#HouseState_Name').rules('add', { verify: true, remote: '@Url.Content("~/Home/Validate")', messages: { verify: "No!" } });
Dans ce cas, il générera une requête GET comme celle-ci:
http://localhost/Home/Validate?HouseState.Name=CA
Le problème est qu’elle attend que ma variable sur le serveur soit House.Name
qui est un nom de variable non valide en C #.
Est-il possible de personnaliser cette variable dans le client ou de créer un alias pour la variable sur le serveur? J’ai essayé d’utiliser FormCollection
et cela a fonctionné, mais il est loin d’être parfait.
public JsonResult Validate(FormCollection form) { ... }
Je voulais un moyen de travailler comme ça:
public JsonResult Validate(ssortingng stateName) { ... }
Vous pouvez utiliser la propriété Prefix
de BindAtsortingbute
pour ” BindAtsortingbute
” efficacement le préfixe.
public JsonResult Validate([Bind(Prefix="HouseState.Name")]ssortingng Name)
alors name="HouseState.Name"
devient simplement Name
lors de la liaison