1

私のフォームには、部分ビューのメール フィールド、検索ボタン、およびプレース ホルダーがあります。

@using (Html.BeginForm())
{   
    Html.TextBoxFor(model => model.emailAddress, new { style = "width:400px" , @class = "emailValue"})
    @Html.ValidationMessageFor(model => model.emailAddress) 

<button name="button" value="search" id="SearchResultbtn">
                    Search</button>
 <div id="searchResult">
                </div>

}

jqueryを使って検索結果を部分表示する

$(document).ready(function (e) {
    $("#SearchResultbtn").click(function (e) {
        e.preventDefault();
        $("#searchResult").load('@Url.Action("AdminSearchResult", "Administration")');
    });
});   

私のコントローラーには、メインのアクションメソッドがあります

[HttpPost]
public ActionResult CreateAdmin(string button, Administration admin)
{
}

および部分ビューを処理する Action メソッド

public ActionResult AdminSearchResult(string sortOrder, int? page)
{
    var result = Administration.GetAdministrationList();
    return PartialView("AdminSearchResult", result);
}

今私が望むのは、最初にボタンのクリックで電子メールを検証し、電子メールが有効な場合は部分ビューをロードし、エラーメッセージをスローしない場合です。

4

1 に答える 1

0

再び、@ user2225604! これを行うために、スクリプトや凝ったものはまったく必要ありません。以前の回答に従って、目立たないjsがすでに有効になっているので...

あなたが言及した動作から、次のようなものが必要だと思います:

@using (Ajax.BeginForm("AdminSearchResult", "ControllerName", null, new AjaxOptions { UpdateTargetId = "searchResult", InsertionMode = InsertionMode.Replace }))

それ以外の:

@using (Html.BeginForm())

その後、スクリプトを完全に削除できます。Ajax.BeginForm でその sortOrder パラメーターに routeValue を渡す必要があるかもしれませんが、それ以外は問題ありません。

于 2013-04-15T20:25:37.083 に答える