Mvc也有自身的异步加载方式,名字叫AjaxHelper
但是Jquery也有个已经封装好的异步,我们先来看看Jquery的请求
<form id="from"> <p><span>name</span>@Html.TextBox("Name");</p> <p><span>Age</span>@Html.TextBox("Age");</p> <p><input type="button" id="Buttons" value="提交" /></p> </form> <script> $(function () { $("#Buttons").click(function () { $.ajax({ url:"@Url.Action("add","News")", data: $("#from").serialize(), type: "Get", success: function (data) { console.log(data) }, error: function (xhr) { } }); }); }); </script>
查看网页源代码
F12输出打印
使用Ajax.BeginForm 异步请求
关于AjaxOptions 你们去微软官网看一下,这东西我也没经常用,只是讲一下,有这个
@using (Ajax.BeginForm("add1", "News", new AjaxOptions { HttpMethod = "Post", OnSuccess = "datas" /*/这是正确进入的方法/*/, OnFailure = "failure" /*这是失败的*/ })) { <h1>使用AjaxHelper的异步请求</h1> <p><span>name</span>@Html.TextBox("Name");</p> <p><span>Age</span>@Html.TextBox("Age");</p> <p><input type="submit" value="提交" /></p> }
script
function datas(data) {
console.log(data.name)
}
但是这里遇到了一个问题,就是获取的内容会自动跳到
@using (Ajax.BeginForm("add1", "News", new AjaxOptions
/News/add1
不知道什么原因,百度了一下,发现了这个原因
我也试了好多次,发现这个问题一直有,希望大佬回答一下,貌似感觉 datas方法没有执行导致自己进入news/add1