2

私はかみそりのWebページ(mvcではない)で2つのfromを使用したかったのですが、私の問題は複数のフォームで動作していますどのフォームボタンがクリックされ、別の問題が検証であることをプロジェクトにどのように伝えるのですか検証グループを使用して検証を分離しますが、ここではクライアント側の検証とサーバー側の検証の両方でそれを処理する方法がわかりませんここに私のコードがあります:

@{
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>
4

2 に答える 2

2

複数のフォームリクエストを処理するには、このリンクを確認してくださいhttp://forums.asp.net/t/1678062.aspx/1

各サブセクションで検証を処理できます。お役に立てば幸い

于 2012-11-05T14:57:20.257 に答える
0

どの送信ボタンがクリックされたかを確認することで、どのフォームが送信されたかを判断できます。その名前と値はRequest.Formコレクションに含まれます。サンプル コードの最初のフォームが送信されRequest["s1"]た場合、値は「Send 1」になります。Request["s2"].IsEmpty()でしょうtrue

検証の問題を回避する最も簡単な方法は、両方のテキスト ボックスに同じ名前 ("txt1") を使用することです。それ以外の場合は、検証ヘルパーを離れて、送信されたフォームに基づいて独自の条件付き検証ルーチン (クライアントとサーバー) を作成する必要があります。

于 2012-11-07T20:28:43.267 に答える