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")');
    });
});   

在我的控制器中,我有一个主要的 Action 方法

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