您的位置:首页 > 其它

Ajax.BeginForm使用与注意点 IN MVC

2015-08-10 17:29 225 查看
对于才接触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使用问题的一些心得和一些技巧,本文到此结束;

转载请注明出自【不可理喻的小的的专栏】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: