2011-03-22 39 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