Validation jQuery à distance avec un nom de variable non valide: comment réparer?

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