0

私はASP.NET MVC 4に取り組んでいます。検証のためにモデルでデータ注釈を使用しています。

Mobile という名前のフィールドが 1 つあり、以下のように正規表現を使用して検証します。

[RegularExpression(@"[0-9]{10}", ErrorMessage = "Mobile Number is Not Valid")]
public string Mobile { get; set; }

上記のアプリケーション要件に従って、フィールドは必須ではありませんが、ユーザーが挿入した場合は携帯電話番号を検証する必要があります。

私の問題は、フォームを送信すると「モバイル フィールドが必要です」と表示されることです。[Required]しかし、モバイルフィールドは属性で装飾されていません。では、必要に応じてどのように表示しますか?

その理由は何ですか?それを解決する方法は?

4

3 に答える 3

0

プロジェクトには、必要なコントロールを使用してビューを作成した可能性のある「views」フォルダーがあります。次のようなものがあるはずです:

@Html.LabelFor(m => m.Mobile)<br />
@Html.TextBoxFor(m => m.Mobile)<br /> 

正規表現を機能させるために。すでにこれを行っている場合は、モデルに別の問題がある可能性があります。ビューの上部で、次の方法でモデルを追加する必要があります。

@model yourModelName
于 2012-12-29T17:03:04.077 に答える
0

コントローラーにコードを投稿していないためIndex、コントローラーのアクションと見MyModelなされ、モデルと見なされます。

コントローラーで次のコードを試してください。

 public ActionResult Index(MyModel model)
    {
       //This will check if `Mobile` is empty and remove the Mobile from validation if the field is empty
       if (collection.Get("Mobile") == "")  //Mobile is the name of the Mobile number field in view
       {
            ModelState.Remove("Mobile");
       }
       if(ModelState.IsValid){
       //do something
       }
       else{
             return View(model);
       }
    }

それが役に立てば幸い

于 2013-01-02T09:02:06.003 に答える
-1

次の単純なjQueryを使用して、非常に簡単に実行できます..

//Remove Required field validation on pin and mobile number
    $(document).ready(function () {
        $("#Mobile").removeAttr("data-val");
    });

Pls は試してみて、それがあなたのために働くかどうか私たちに知らせてください.

ありがとう

于 2013-01-17T12:43:20.463 に答える