我想在我的剃刀网页中使用两个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>
答案 0 :(得分:2)
查看此链接以处理多个表单请求http://forums.asp.net/t/1678062.aspx/1
您可以在每个子部分处理验证。希望有所帮助
答案 1 :(得分:0)
您可以通过检查查看单击了哪个提交按钮来确定提交的表单。它的名称和值将在Request.Form
集合中。如果您的示例代码中的第一个表单已提交,Request["s1"]
将具有值“发送1”。 Request["s2"].IsEmpty()
将是true
。
解决验证问题的最简单方法是对两个文本框使用相同的名称(“txt1”)。否则,您将不得不离开验证助手,并根据提交的表单编写自己的条件验证例程(客户端和服务器)。