0

私はremoteの検証とjQuery検証を使用しています。変数名が無効なjQuery検証リモート:修正する方法は?

私はMVCで私のサーバー側のコードを呼び出すようにしようとしているが、問題は私の変数は、ネストされたクラスであるということである。

@Html.TextBoxFor(m => m.HouseState.Name, new { placeholder = "State Name"}) 
:私はこれを持っている私の*の.cshtmlで

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

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

私はこれで検証を追加している

この場合
$.validator.addMethod("verify", verify); 

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

それは、このようなGETリクエストを生成します:

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

問題は、それがサーバーの私の変数はHouse.Name魔女も期待していることであるC#で無効な変数名です。

クライアントでこの変数をカスタマイズしたり、サーバー内の変数のエイリアスを作成する方法はありますか?私はFormCollectionを試してみましたが、それは機能しましたが、完璧ではありません。

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

私はそれにいくつかの方法は次のように動作したかった:

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

答えて

2

あなたが効果的に「ストリップ」プレフィックスにBindAttributePrefixプロパティを使用することができます。

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

のでname="HouseState.Name"はちょうどName結合

+0

ニースになります。それはトリックでした。今問題は、実際にはDateTime変数であり、ちょうどここに間違った文化が広がっているということです。しかしそれは別の問題です。ありがとう。 –

関連する問題