0

Ich verwende remote Validierung mit jQuery-Validierung.jQuery Validierung remote mit ungültigen Variablennamen: Wie zu beheben?

Ich versuche, meinen Server-Seite Code in MVC zu nennen, aber das Problem ist, dass mein Variable in einer verschachtelten Klasse:

public class Customer 
{ 
    public State HouseState {get;set;} 
} 

public class State 
{ 
    public string Name {get;set;} 
} 

In meiner * .cshtml ich diese:

@Html.TextBoxFor(m => m.HouseState.Name, new { placeholder = "State Name"}) 

ich füge Validierung mit diesem:

$.validator.addMethod("verify", verify); 

    $('#HouseState_Name').rules('add', { 
     verify: true, 
     remote: '@Url.Content("~/Home/Validate")', 
     messages: { verify: "No!" } 
    }); 

In diesem Fall wird es eine GET-Anforderung wie folgt erzeugen:

http://localhost/Home/Validate?HouseState.Name=CA 

Das Problem ist, dass es meine Variable in dem Server House.Name Hexe zu erwarten ist eine ungültige Variablennamen in C#.

Gibt es eine Möglichkeit, diese Variable im Client anzupassen oder einen Alias ​​für die Variable im Server zu erstellen? Ich habe versucht zu verwenden FormCollection und es hat funktioniert, aber ist weit von perfekt.

public JsonResult Validate(FormCollection form) 
{ 
    ... 
} 

wollte ich einen Weg, um es wie folgt: Die

public JsonResult Validate(string stateName) 
{ 
    ... 
} 

Antwort

2

Sie die Prefix Eigenschaft BindAttribute verwenden können, um effektiv ‚Streifen‘ das Präfix.

public JsonResult Validate([Bind(Prefix="HouseState.Name")]string Name) 

so wird name="HouseState.Name" nur Name beim Binden

+0

Nizza. Es hat den Trick gemacht. Das Problem ist jetzt, dass es tatsächlich eine DateTime-Variable ist und gerade hier eine falsche Kultur entsteht. Aber es ist ein anderes Problem. Vielen Dank. –

Verwandte Themen