MVC下HtmlHelper自带BeginForm表单提交与异步Ajax请求

时间:2021-11-10 19:42:31

假如有一个数据表格UserInfo:

public class UserInfo
{
public int Id { get; set; }
public string Name { get; set; }
public string Pwd { get; set; }
public int Sex { get; set; }
}

控制器下Action方法:UserInfos

表单提交过来后UserInfo user对象可以获取到value值,只要html标签的name值与UserInfo下的属性名相同

public ActionResult UserInfos(UserInfo user)
{
if (user.Name != "admin" && user.Pwd != "")
{
return Content("用户名或密码错误");
}
else
{
return Content("登录成功");
}
}

html代码(表单提交):

@using (Html.BeginForm("UserInfos", "Home", FormMethod.Post))
{
<input type="text" name="Id" value="" />
<input type="text" name="Name" value="" />
<input type="text" name="Pwd" value="" />
<select name="Sex">
<option value="-1">请选择</option>
<option value="1">男</option>
<option value="0">女</option>
</select>
<input type="submit" id="btnOK" value="提交" />
}

html代码(异步表单表单提交):

@using (Ajax.BeginForm("UserInfos", "Home", new AjaxOptions() { Confirm = "您确定要提交吗?", HttpMethod = "post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "result", LoadingElementId = "loading", OnSuccess = "afterSuccess", OnFailure = "afterError" }))
{
<input type="text" name="Id" value="" />
<input type="text" name="Name" value="" />
<input type="text" name="Pwd" value="" />
<select name="Sex">
<option value="-1">请选择</option>
<option value="1">男</option>
<option value="0">女</option>
</select>
<input type="submit" id="btnOK" value="提交" />
}
    <span style="color:red;font-size:10px;" id="result"></span>
<div id="loading" style="display:none;">
<img src="~/Content/loading.jpg" />
</div>

上面的InsertionMode = InsertionMode.Replace为追加数据

UpdateTargetId = "result"为请求返回的数据填充到这个ID值

OnSuccess = "afterSuccess"和 OnFailure = "afterError"为成功与失败要执行的JS函数