0

テキストボックスに必須のフィールド検証を追加したいのですが、これらのテキストボックスにモデルパラメーター (注釈) を使用していません。これを達成する方法は?

以下は私のコードです:

@using (Html.BeginForm())
{
  <h1> 3D Pay Örnek Sayfa</h1>
  <table class="tableClass">
  <tr class="trHeader">
    <td>Test</td>
    <td>@Html.TextBox("TestIt")</td>
  </tr>
  </table>
}
4

2 に答える 2

3

まあ、あなたは本当にモデルを使うべきです、しかしあなたが手で物事をすることを主張するならば、私はそれでもjquery検証プラグインを使うことを勧めます。

http://docs.jquery.com/Plugins/Validation#Exampleに基づく例:

(注:探しているビットはです。@Html.TextBox("TestIt", "", new { @class="required" })これにより、class = "required"属性がテキストボックスに追加され、jqueryにそれが必須フィールドであることを検証するように指示されます。)

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
    <style type="text/css">
        * { font-family: Verdana; font-size: 96%; }
        label { width: 10em; float: left; }
        label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }
        p { clear: both; }
        .submit { margin-left: 12em; }
        em { font-weight: bold; padding-right: 1em; vertical-align: top; }
    </style>
    <script>
        $(document).ready(function(){
           $("form").validate();
        });
    </script>
</head>
<body>
@using (Html.BeginForm())  
{  
    <center>  
        <h1> 3D Pay Örnek Sayfa</h1>  
            <table class="tableClass">  
                <tr class="trHeader">  

                    <td>Test</td>  
                    <td>@Html.TextBox("TestIt", "", new { @class="required" })</td>  
                </tr>  
            </table>  
    </center>  
    <input type="submit" id="SubmitData" name="SubmitData" value="Submit" />
}
</body>
</html>

これは単なるクライアント側の検証であることに注意してください。サーバー側でも検証する必要があります。モデルを使用していないため、これはおそらく、各入力を検証するためのカスタムコントローラーコードを意味します。

于 2012-09-19T12:24:49.283 に答える
2

モデルを使用していないとおっしゃっていましたが、モデルを使用することを強くお勧めします。

モデル:

public class TestModel
{
    [Required]
    public string TestIt {get; set;}
}

マークアップ:

@Html.TextBoxFor(m => m.TestIt)
@Html.ValidationMessageFor(m => m.TestIt)

詳細については、「方法: DataAnnotations 属性を使用してモデル データを検証する」を参照してください。

モデルを使用しないことに固執している場合は、 jQuery Validateを使用してクライアント側を検証できますが、より多くのコードが必要になります。

于 2012-09-19T12:22:20.517 に答える