当前位置: 首页 > 编程语言 > C#

如何在MVC3中从javascript调用Controller方法?Share

时间:2023-04-10 14:58:44 C#

MVC3中javascript如何调用Controller方法?我使用MVC3架构,c#.net。当焦点转到下一个字段即密码字段时,我需要立即将文本框内容(用户ID)与数据库进行比较。所以我想在用户id字段中使用onblur事件,然后调用Controller方法。谁能告诉我如何处理这个问题?作为新手,非常感谢代码片段。在此先感谢,Prashant这是一个例子。控制器方法示例[HttpPost]//可以是HttpGetpublicActionResultTest(stringid){boolisValid=yourcheckmethod();//..检查varobj=new{valid=isValid};返回杰森(对象);这将是您的javascript函数。functioncheckValidId(checkId){$.ajax({url:'controllerName/Test',type:'POST',contentType:'application/json;',data:JSON.stringify({id:checkId}),成功:函数(valid){if(valid){//证明id有效}else{//证明id无效}}});参见JQuery.get()、System.Web.Mvc.JsonResult。示例:您需要一个操作来捕获GET请求:publicclassHomeController{[HttpGet]publicActionResultValidateUserID(stringid){boolsuperficialCheck=true;返回Json(new{success=superficialCheck},JsonRequestBehavior.AllowGet);几点,排名不分先后:这听起来像是服务器端身份验证,因此您可以使用客户端身份验证功能。http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx通常这可以使用ajax调用来完成(不确定您是否使用jQuery,但如果不使用,则没有特殊限制,鼓励使用它):http://api.jquery.com/jQuery.ajax/在客户端:$.ajax({url:'@Url.Action("ActionName","ControllerName")',type:"POST",async:true,dataType:"json",data:$('#form').serialize(),success:function(data){//处理结果},error:function(request,status,error){//处理错误信息}});服务器端:[HttpPost]publicvirtualActionResultActionName(){returnJson("value")}但是一般你应该从ASP.NETMVC3AjaxGoogle开始,网上有很多相关的内容,你可能已经找到您需要的东西。您可以将RemoteValidation属性与控制器上的服务器端操作一起使用,以通过MVCUnobstrusivejavascript为您完成所有操作,而无需为其编写一行JS/Jquery。以下是您可以执行的操作:假设您有一个名为AccountController的控制器和一个名为CheckPassword的控制器,它接受参数字符串密码,您可以将其放入视图中:$('#texboxId').blur(function(){$.ajax({url:'/Account/CheckPassword',data:{password:$('#texboxId').val()},success:function(data){//将操作结果放入类为“result”的元素中$('.result').html(data);},错误:function(){alert('Error');}});});您的控制器操作将如下所示:以上是C#学习教程:HowtocalltheControllermethodfromjavascriptinMVC3?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——publicclassAccountController:Controller{publicActionResultCheckPassword(stringpassword){boolpasswordIsCorrect=//do您的支票;stringreturnString="无论你想发回什么信息";返回内容(返回字符串);}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: