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 回答