2011-03-22 119 views
2

我有一个用户控件包含3个文本框和一个按钮 添加到aspx页面。当点击它应该做一个Ajax调用控制器,并通过文本框的数据和它应该返回的消息....我怎么能做到这一点呼叫控制器使用jQuery ajax调用

回答

8

例子:

<input type="text" name="foo" id="foo" /> 
<input type="text" name="bar" id="bar" /> 
<input type="text" name="baz" id="baz" /> 
<%= Html.ActionLink("send to controller", "Ajax", "Home", null, new { id = "ajaxLink" }) %> 

,并在一个单独的JavaScript文件你可以ajaxify此链接:

$(function() { 
    $('#ajaxLink').click(function() { 
     var data = { 
      foo: $('#foo').val(), 
      bar: $('#bar').val(), 
      baz: $('#baz').val() 
     }; 
     $.getJSON(this.href, data, function(result) { 
      alert(result.message); 
     }); 
     return false; 
    }); 
}); 

和相应的控制动作将接收的调用和返回JSON:

public class HomeController: Controller 
{ 
    public ActionResult Ajax(string foo, string bar, string baz) 
    { 
     // TODO: do something with the arguments 

     return Json(
      new { message = "Thanks for sending info" }, 
      JsonRequestBehavior.AllowGet 
     ); 
    } 
} 

编辑:分配var data的值时删除了“新”关键字。

+0

我已将此代码复制并粘贴到模板.net mvc 3项目中,以测试变量与foo,bar,baz在操作方法Ajax上的绑定是否都为空。 – Seth 2012-09-06 22:47:24

+0

唯一的区别是我使用的是Razor语法。 – Seth 2012-09-06 22:48:45