2010-08-09 21 views
0

我正在嘗試讓我的頭部繞過MVC。 我想要做的是這個;關於如何通過javascript進行數據庫更新的語法幫助需要幫助

 function TestClickFunc(userId) { 

      $.post("/Users/UpdateEmailDistributionListFlag", { id: userId }); 
     } 

但是我不能直接在像這樣的javascript方法中使用JQuery。 我一直在四處尋找示例,但現在我需要引用你。我如何爲這個Javascript方法準備好JQuery? 我想調用Users控制器上的UpdateEmailDistributionListFlag方法併發送參數userId。

回答

1

不要使用onclick =「xxx」。可怕!讓jQuery將其全部設置爲:

$(function(){ 
    $('input:checkbox').change(function() { 
    var userId = $(this).attr('userId'); 
    $.post("/Users/UpdateEmailDistributionListFlag", { id: userId }); 
    }); 
}); 

當點擊複選框時,這會發佈一個請求到您的動作。我不知道你的DOM是如何工作的,我只是爲了給你提供一些要點。順便說一句,你聽起來像有人誰可以與一些jQuery IntelliSense做的(不是大家?)

這是假設你使用類似:

<%: Html.CheckBoxFor(x => x.EmailDistributionListFlag, new { userId = Model.UserId })%> 

我想你有一個這樣的動作準備和等待:

[HttpPost] 
public void UpdateEmailDistributionListFlag(int userId) 
{ 
    //log something 
} 
+0

你對正在使用UsersController的方法是正確的。 Javascript方法是通過複選框上的單擊事件調用的。這個複選框在foreach循環中以局部視圖呈現,因此我們有一個網格,這就是爲什麼我這樣做的原因; <%:Html.CheckBoxFor(x => x.EmailDistributionListFlag, new {id =「checkBoxEmailDistributionListFlag」,onclick =「TestClickFunc(」+ Model.UserId +「)」})%> – arame3333 2010-08-09 15:01:02

+0

它應該很容易解決,我得到$沒有在FireBug中定義。現在我正在我的母版頁中爲JQuery提供CDN; 但是我相信有一些明顯的需要改變。 – arame3333 2010-08-09 15:13:27

+0

ive更新.... – BritishDeveloper 2010-08-09 15:38:20