4

プロパティにリモート検証属性を使用しSSNます。ビュー ページでは汎用ビューを使用し、ssn フィールドは次のようになります。

@Html.EditorFor(model => model.MainModel.SSN)
@Html.ValidationMessageFor(model => model.MainModel.SSN)

そして私の行動は:

public JsonResult IsValidaSSN(string SSN) {

  //....

    return Json(result, JsonRequestBehavior.AllowGet);

}

しかし、常にSSNnullが動作しています。私も試してみましたがMainModelSSNMainModel_SSN変更はなく、常にnullです。あなたの提案は何ですか? MainModel.SSNアクション引数の正しい名前は何ですか?

4

3 に答える 3

4

プレフィックスを指定してみてください。

public Action IsValidaSSN([Bind(Prefix = "MainModel")] string SSN) 
{
    //....
    return Json(result, JsonRequestBehavior.AllowGet);
}

MainModelデータの送信に使用されるプレフィックスです=> MainModel.SSN

于 2012-05-12T09:00:46.680 に答える
4

別の、もう少し正確に、Rahul の答えを取り上げます。

public JsonResult IsValidImageUrl(string SSN) {
    if (string.IsNullOrEmpty(SSN)) {
        string parmname = Request.QueryString.AllKeys.FirstOrDefault(k => k.EndsWith(".SSN"));
        if (!string.IsNullOrEmpty(parmname)) {
            SSN = Request.QueryString[parmname];
        }
    }

    //.... etc.

これは複数のパラメータで飛ぶことができます。

補足として、「GET」JSON メソッドと SSN に関連付けられているものとの関連付けを再検討することをお勧めします。

于 2014-02-25T17:56:45.743 に答える
3

最初のクエリ文字列パラメータを使用するだけで、この問題を解決しました。

public JsonResult IsValidImageUrl(string value) {

    if (value == null && Request.QueryString.Count == 1) {
            value = Request.QueryString[0];
        }


    //....            

    return Json(result, JsonRequestBehavior.AllowGet);                    
}
于 2012-11-20T16:45:12.590 に答える