如果您想了解c#–ASP.NET自定义验证器WebMethodjQuery和aspnet验证控件例子的知识,那么本篇文章将是您的不二之选。我们将深入剖析c#–ASP.NET自定义验证器WebMetho
如果您想了解c# – ASP.NET自定义验证器WebMethod jQuery和aspnet验证控件例子的知识,那么本篇文章将是您的不二之选。我们将深入剖析c# – ASP.NET自定义验证器WebMethod jQuery的各个方面,并为您解答aspnet验证控件例子的疑在这篇文章中,我们将为您介绍c# – ASP.NET自定义验证器WebMethod jQuery的相关知识,同时也会详细的解释aspnet验证控件例子的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- c# – ASP.NET自定义验证器WebMethod jQuery(aspnet验证控件例子)
- asp.net – WCF vs ASPX webmethods vs ASMX webmethods
- asp.net – 使用jquery调用webmethod时始终获得“401 Unauthorized”错误
- asp.net – 日历自定义验证器
- asp.net – 通过ajax将jquery中的数组传递给c#webmethod
c# – ASP.NET自定义验证器WebMethod jQuery(aspnet验证控件例子)
我使用的WebMethod非常简单
[WebMethod()] public static bool IsPromovalid(string code) { string promoCode = "ABCDEFG"; bool result = code.ToLower() == promoCode.ToLower(); return result; }
CustomValidator看起来像这样
<asp:CustomValidator ID="cvPromoCode" display="None" ControlTovalidate="txtPromoCode" runat="server" ClientValidationFunction="validatePromo" ErrorMessage="The promo code you entered is incorrect" OnServerValidate="ValidatePromoCode" />
和简单的$.ajax()ClientValidation函数
function validatePromo(src,args) { $.ajax({ type: "POST",url: "Register.aspx/IsPromovalid",data: "{'code': '" + args.Value + "'}",contentType: "application/json; charset=utf-8",dataType: "json",success: function (msg) { args.IsValid = msg.d; } }); }
问题是页面立即验证,实际上并没有等待ajax调用完成.如果页面上有任何其他错误,它会显示验证摘要,但从不显示自定义验证程序的错误消息.
我可以看到在Firebug中进行的AJAX调用,它会重新响应正确的响应(在这种情况下为true或false)
解决方法
function validatePromo(src,args) { var isValid; $.ajax({ type: "POST",data: "{'code': '" + args + "'}",async: false,success: function (msg) { isValid = msg.d; } }); args.IsValid = isValid; }
请特别注意async:false.你的第一次尝试不起作用的原因是,在验证脚本已经检查了args.IsValid之前,没有调用ajax成功回调.使用async:false,$.ajax调用将在成功回调完成后才会完成.
这个问题的一大问题是它现在“阻塞”任何js线程正在运行验证.在ASP.Net验证器的情况下,我不认为这是一个问题,但我会通过长时间运行的电话进行测试,以确保您没有搞任何人在慢速连接上的页面.
asp.net – WCF vs ASPX webmethods vs ASMX webmethods
我们希望公开服务,以便人们可以使用它来创建数据mashup和其他应用程序.
最终用户是可以在我们的域内或域外的网页.对于域外的页面,我们计划发布可配置为retreive并显示数据的小部件.
一个要求 – 应用程序应该在其可以处理的用户数量方面具有极高的可扩展性.
我们的代码库是.net,我们正在研究ASPX webmethods(或ASHX),ASMX webmethods和WCF(开始阅读WCF).
在安全性/访问方面,我发现维护sessionid,会员资格在这三个方面都是可行的. WCF似乎有点复杂.当我们只能在aspx中使用web方法(略微调整)完成所有操作时,我无法立即看到asmx的值.
另外,假设使用ASP.NET MVC2,我也可以为这些web方法获得干净的URL.
问题
在性能和可扩展性方面哪一个最有效?
我应该选择WCF或ASMX的任何理由?
感谢您抽出时间阅读这篇文章,并为我刚接触.net的天真问题道歉.
编辑我有点明白WCF是要走的路.只是为了理解这些技术的发展,如果有人可以说明为什么aspx webmethod与asmx不同,当两者都能完成类似的事情(除了发现之外)之外,这将是一件好事.可以使aspx webmethods以其他格式(明文,json)返回数据.此外,我们似乎可以使用ashx构建restful服务.再次为天真的问题道歉.
解决方法
asp.net – 使用jquery调用webmethod时始终获得“401 Unauthorized”错误
非常感谢您的见解!
调用js函数调用jquery调用
button.OnClickAction = "PageMethod('TestWithParams',['a','value','b',2],'AjaxSucceeded','AjaxFailed'); return false;";
调用jquery的JavaScript函数
function PageMethod(fn,paramArray,successFn,errorFn) { var pagePath = window.location.pathname; var urlPath = pagePath + "/" + fn; //Create list of parameters in the form: //{"paramName1":"paramValue1","paramName2":"paramValue2"} var paramList = ''; if (paramArray.length > 0) { for (var i = 0; i < paramArray.length; i += 2) { if (paramList.length > 0) paramList += ','; paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"'; } } paramList = '{' + paramList + '}'; //Call the page method $.ajax({ type: "POST",url: pagePath + "/" + fn,contentType: "application/json; charset=utf-8",data: paramList,timeout: 10000,dataType: "json",success: function(result) { alert('Overjoyed'); },error: function(result) { alert('No joy'); } }); }
页面中的Web方法
public partial class WebLayout : System.Web.UI.Page { [WebMethod()] public static int Testnoparams() { return 1; } [WebMethod()] public static string TestWithParams(string a,int b) { return a + b.ToString(); } ...
在Firebug控制台中看到的响应
json: {"Message":"Authentication Failed.","StackTrace":null,"ExceptionType":"system.invalidOperationException"}
和
"NetworkError: 401 Unauthorized - http://localhost/Care-Provider-Home/Profile/Personal-Profile.aspx/TestWithParams" TestWithParams
我查看并阅读了关于这个主题的常用网站(Encosia等),但是有用.要么我错过了一个关键部分,要么我的环境的安全参数中存在一些阻止呼叫的微妙之处.
以下是一些可能影响您诊断的潜在有用信息:
>代码隐藏中的Web方法
>使用Sitecore CMS(似乎没有干涉,永远不知道)
> IIS7
> .NET 3.5
> jQuery 1.3.2
我期待着您的见解和指导 – 谢谢!
解决方法
asp.net – 日历自定义验证器
Microsoft提供的一个解决方案是扩展日历:
How to extend a Web form control to work with the validation controls by using Visual C#
有没有更简单的解决方案?
解决方法
<asp:Calendar ID="startCalendar" CssOnSelectionChanged="Selection_Changed" runat="server"></asp:Calendar> <asp:CustomValidator ID="dateCustVal" OnServerValidate="DateCustVal_Validate" runat="server"></asp:CustomValidator> protected void DateCustVal_Validate(object source,ServerValidateEventArgs args) { if (startCalendar.SelectedDate == null || startCalendar.SelectedDate == new DateTime(0001,1,0)) { args.IsValid = false; } else { args.IsValid = true; } }
asp.net – 通过ajax将jquery中的数组传递给c#webmethod
这是我到目前为止:
我的阵列:
$(".jobrole").each(function (index) { var jobroleIndex = index; var jobroleID = $(this).attr('id'); var jobroleName = $(this).text(); var roleInfo = { "roleIndex": jobroleIndex,"roleID": jobroleID,"roleName": jobroleName }; queryStr = { "roleInfo": roleInfo }; jobroleArray.push(queryStr); });
我的ajax代码
$.ajax({ type: "POST",url: "WebPage.aspx/save_Role",data: jobroleArray,contentType: "application/json; charset=utf-8",dataType: "json",async: false,success: function (data) { alert("successfully posted data"); },error: function (data) { alert("Failed posted data"); alert(postData); } });
在网络方法上不确定,但这是我在想的:
[WebMethod] public static bool save_Role(String jobroleArray[])
解决方法
[ "roleInfo": { "roleIndex": jobroleIndex,"roleName": jobroleName },"roleInfo": { "roleIndex": jobroleIndex,... ]
在我看来,如果你有一个匹配该结构的类会更容易,如下所示:
public class roleInfo { public int roleIndex{get;set;} public int roleID{get;set;} public string roleName{get;set;} }
因此,当您从jQuery调用Web方法时,您可以这样做:
$.ajax({ type: "POST",data: "{'jobroleArray':"+JSON.stringify(jobroleArray)+"}",error: function (data) { alert("Failed posted data"); alert(postData); } });
在您的网络方法中,您可以接收List< roleInfo>通过这种方式:
[WebMethod] public static bool save_Role(List<roleInfo> jobroleArray) { }
如果你试试这个,请告诉我.以上代码没有以任何方式进行测试,因此可能存在错误,但我认为这是一种很好且非常干净的方法.
关于c# – ASP.NET自定义验证器WebMethod jQuery和aspnet验证控件例子的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net – WCF vs ASPX webmethods vs ASMX webmethods、asp.net – 使用jquery调用webmethod时始终获得“401 Unauthorized”错误、asp.net – 日历自定义验证器、asp.net – 通过ajax将jquery中的数组传递给c#webmethod等相关知识的信息别忘了在本站进行查找喔。
本文标签: