学习MVC应用开发,改变了Insus.NET以前ASP.NET的开发习惯,以前开发均是服务器端,而现在使用jQuery的Ajax在实现。想到与考虑了很多问题,也遇上很多问题,一些解决了,一些还留下,望能一一把它们解决。
就如这个问题《Internal Server Error》http://www.cnblogs.com/insus/p/3418942.html 让Insus.NET印象深刻,自己解决它,花上了Insus.NET不少的时间。
今天的博文,Insus.NET就是分享一下更好的解决方案,把这个服务端的异常或是在存储程自定义的异常,能在jQuery的Ajax显示出来。
回来头来,看看这里《MVC会员注册》http://www.cnblogs.com/insus/p/3439599.html 在存储过程[dbo].[usp_Member_Register]会看到自定义异常信息,判断帐号是否有被注册:
IF EXISTS(SELECT TOP 1 1 FROM [dbo].[Member] WHERE [Account] = @Account) BEGIN RAISERROR(N'此帐号[%s]已经注册,请更改再重新注册。',16,1,@Account) RETURN END
Ok,稍后我们就需这个自定义的异常信息throw至jQuery上。
打开练习的专案,找到以前写好js类库《创建自己的共用js库》http://www.cnblogs.com/insus/p/3427673.html 添加两个扩展方法:
然后,打开需要引用此js库的View视图,如Member/Register.cshtml:
然后修改jQuery代码,Comment out :
alert(errorThrown);
添加箭头一句:
下面的实时演示中,Insus.NET有尝试测了已经被注册的用户,它有正常显示出存储过程的自定义异常信息。另外还测试了,把存储过程删除了,它也能提示找不到存储过程。最后Insus.NET重新建哪个存储过程,它又能正常运用了。