对于才接触MVC不久的我来说自己的写一个MVC的练习项目将会遇到多少问题,这是可想而知的;然而今天就遇到了一个,写下分享一下。
引题:
在使用表单提交时有很多的方法(HTML.BeginForm/Ajax.BeginFrom),开始我使用了HTML.BeginFrom成功的解决了三分之一的问题(核心部分,这是一个简单的用户登陆功能),在完成三分之二时需要一些友好的提示,这时就需要返回一些JavaScript脚本(我选择在服务器端返回);这时问题来了,如下图:
因为是新手,在网上找了些博客、问题的资料,分享一下,这些资料中有怎么使用Ajax.BeginFrom的说明,我也就不再阐述了,如下:
http://blog.csdn.net/xxglyy/article/details/7948470
http://www.blackbeltcoder.com/Articles/script/using-ajax-beginform-with-asp-net-mvc
上面这些讲的都很好,有重点。
看完这些以后我并没有成功,但有一篇文章给了我点启发,说在浏览器的调试中说“Jquery is undefined”,这时我也去看了Js的高度信息,果然也有一个错误,错误提示为”Sys Is undefined“,然后根据这条信息找到了下面这一篇文件:
http://stackoverflow.com/questions/1035663/asp-net-mvc-ajax-sys-is-undefined-error
并看下如下图中的信息时我进行了安装,感觉有点谱
为了保险并加上了“~/Scripts/jquery.unobtrusive-ajax.js",这个JS在项目里面是包含了,所以直接引用就行,如果没有也可以使用NuGet安装,但上面提到的两个(MicrosoftAjax、MicrosoftMvcAjax.Mvc 5)在我找过的文章里面都没的提到过,这也是使用Ajax.BeginForm没有成功的原因,根据上图中的说明在BundleConfig中添加了如下段:
bundles.Add(new ScriptBundle("~/Scripts/AjaxBeginForm") .Include("~/Scripts/MicrosoftAjax*","~/Scripts/MicrosoftMvcAjax*","~/Scripts/MicrosoftMvcValidation*","~/Scripts/mvcfoolproof*","~/Scripts/MvcFoolproofJQueryValidation*","~/Scripts/jquery.unobtrusive-ajax.js","~/Scripts/MvcFoolproofValidation*"));
并在View中做了引用,然后再在contorllers中使用JavaScript进行脚本的输出,结果成功了,看下图:
经过试验我发现JS的引用有些多余,然后做了一些删减,最终结果如下:
bundles.Add(new ScriptBundle("~/Scripts/AjaxBeginForm") .Include("~/Scripts/MicrosoftAjax*","~/Scripts/MicrosoftMvcAjax*"));
也就是说要实现Ajax.BeginForm的效果需要引用上图中的Js文件。
我看的很多贴中有很多没的提到这些,我估计这跟开发环境有关系,所以取舍还得看实际情况,请注意参考和自己的错误提示信息。
以上是此次解决Aajx.BeginForm使用问题的一些心得和一些技巧,本文到此结束;
转载请注明出自【不可理喻的小的的专栏】
原文链接:https://www.f2er.com/ajax/163043.html