• asp.net mvc Ajax.BeginForm不能异步刷新,或转到新页面,或页面还是刷新了,的原因(或解决办法)(转)


    昨天搞了一下午的Ajax.BeginForm都没能实现异步刷新,一直将返回的数据提交到新的页面,在网上搜了n多方法都不行,问了n多人都没能搞定,今天大一早,就意外的被我发现了问题所在。

    布局页:

    <div id="upload-body">
        <div id="returnData" style="display:none"></div>
    @using (Ajax.BeginForm("Index", "Test", 
        new AjaxOptions { 
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "Post",
            //UpdateTargetId = "returnData", 
            OnSuccess = "Reload(data)",
            OnFailure="DisplayError(data)" }))
    {
        <fieldset>
            <legend> no fresh to upload data</legend>
            User Name:@Html.TextBoxFor(m=>m.UserName)
            <input type="submit" value="Submit" />
        </fieldset>
    }
        </div>
    
        
    <script type="text/ecmascript">
        function Reload(data) {
            alert(data);
        }
        function DisplayError(data) {
            alert(data);
        }
    </script>
    引入jquery.unobtrusive-ajax.js:
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

    control:

    [HttpPost]
            public JsonResult Index(Models.TestModels.TestModel testModel)
            {
                return Json("Hi,"+testModel.UserName, JsonRequestBehavior.AllowGet);
            }

    然后就出现了问题:

    提交后:

    这不是想要的结果,美好的结果是:页面不会刷新或跳转页面。然后就开始查找问题,看看jquery.unobtrusive-ajax.js是否引用到,

    确实引用到了,然后上网找啊找,确实没啥可用资源,各种方法都试过了,问题还是没解决,唉,难道Ajax.BeginForm只是徒有其名,心里默默暗骂:真%¥垃圾%¥!#¥%...

    昨天晚上无果而归。

    今天早上来到公司,再次用Chrome打开,擦,惊奇的发现:

    瞬间内心产生一丝狂暴的欣喜,莫非是因为这,不对呀,确认已经引用过了呀?

    仔细观察倒数第三张图,再次惊奇的发现,jquery在jquery.unobtrusive-ajax之后,

    原来_Layout.cshtml的引用在最下面,嘿嘿,所以果断直接把jquery.unobtrusive-ajax的引用放在了jquery后,

    再次运行:

    哈哈,效果真心不错,顿时,心中不禁对Ajax.BeginForm产生了无比的崇敬与钦佩,真是太吊了!

    总结:注意jQuery和其他js的引用顺序。

  • 相关阅读:
    demo
    Git
    rest-framework框架 -- 认证权限流程源码
    sublime
    restful 协议 +面试
    Django的CBV
    vue 之 vue-router
    vue 之node.js 02
    浏览器内核
    安装apache+php+mysql
  • 原文地址:https://www.cnblogs.com/SzeCheng/p/4872592.html
Copyright © 2020-2023  润新知