asp.net剃刀网页验证和使用多种形式

时间:2012-11-04 11:01:02

标签: razor

我想在我的剃刀网页中使用两个froms(不是mvc) 我的问题是使用多种形式 我如何对我的项目说,单击哪个表单按钮,另一个问题是验证 因为在Web表单项目中我使用验证组来分隔验证但是在这里  我不知道如何在客户端验证和服务器端验证中处理它 这是我的代码 :

@{
Page.Title = "";
Layout = "~/_layout.cshtml";

    Validation.Add("txt1", Validator.Required("can not leave empty"));
    Validation.Add("txt2", Validator.Required("can not leave empty"));


if (IsPost)
{

    if (!Validation.IsValid())
    {
    Validation.AddFormError("there are errors");
    }


}


}
    <style>
    .validation-summary-errors {
            border: 2px solid #990099;
            color: red;
        }

        .field-validation-error {
            color: Red;
        }

        .input-validation-error {
            color: #990099;
            background-color: #ff80ff;
            border-top: 2px solid #990099;
            border-left: 2px solid #990099;
        }
    </style>
    <div>
    <script src="~/jquery-1.7.2.min.js"></script>
    <script src="~/jquery.validate.min.js"></script>
    <script src="~/jquery.validate.unobtrusive.min.js"></script>
    </div>


 <p style="height:10px;"></p>

 <div>
<form name="f1" action="/" method="post">
<div>
    <input name="txt1" type="text" 
        class="@Validation.ClassFor("txt1")"
         />

    @Html.ValidationMessage("txt1")
</div>
<div>
    <input type="submit" name="s1" value="Send 1" />
</div>
</form>

</div>
<br />

<form name="f2" action="/" method="post">
<div>
    <input name="txt2" type="text" 
        class="@Validation.ClassFor("txt2")"
        />

    @Html.ValidationMessage("txt2")
</div>
<div>
    <input type="submit" name="s2" value="Send 2" />
</div>

 </form>

2 个答案:

答案 0 :(得分:2)

查看此链接以处理多个表单请求http://forums.asp.net/t/1678062.aspx/1

您可以在每个子部分处理验证。希望有所帮助

答案 1 :(得分:0)

您可以通过检查查看单击了哪个提交按钮来确定提交的表单。它的名称和值将在Request.Form集合中。如果您的示例代码中的第一个表单已提交,Request["s1"]将具有值“发送1”。 Request["s2"].IsEmpty()将是true

解决验证问题的最简单方法是对两个文本框使用相同的名称(“txt1”)。否则,您将不得不离开验证助手,并根据提交的表单编写自己的条件验证例程(客户端和服务器)。