2014-03-19 119 views
0

控制器:無法使用Ajax調用呼叫控制器方法

[HttpPost] 
    public void DeleteState(string id) 
    { 
     int id1=Convert.ToInt32(id); 
     var _db = new clubDataContext(); 
     var state = from m in _db.StateInfos where m.S_ID == id1 select m; 
     foreach (var m in state) 
     { 
      _db.StateInfos.DeleteOnSubmit(m); 
     } 
     try 
     { 
      _db.SubmitChanges(); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e); 
     } 


    } 

查看:

<input id="state-id" type="text" [email protected]_ID style="display:none"/> 
<td> 
<a id="delete-link" href="" >Delete</a> 
</td> 

$("#delete-link").click(function(){ 
    $.ajax({ 
    url: '@Url.Action("DeleteState", "ManageSystem")', 
    data: {'id':$("#state-id").val(); } , 
     success: function(result) { 
     $('#edit-state').html("State Deleted Successfully"); 
    } 
    }); 

    }  
    }); 

我不知道是什麼原因,但是當我點擊刪除控制器方法不叫。是否有Ajax問題?我已經包含了Ajax庫。

主要事情我忘記提及我的觀點是局部視圖,我從這個局部視圖調用控制器方法。所以我認爲jQuery沒有加載

+2

什麼*不*發生時,您可以單擊元素? JavaScript代碼是否被調用? JavaScript控制檯中是否有錯誤?網絡請求是否已發送?服務器的迴應是什麼?當你調試這個時,它在什麼時候失敗? – David

+0

不,javascript代碼不會被調用..我只是簡單地添加了警報函數,但它沒有被調用。它背後的原因是什麼? –

+0

JavaScript控制檯中是否有錯誤?如果它沒有被調用,那麼我懷疑jQuery沒有加載。另一種可能是,如果您在頁面的其他地方重新使用相同的'id',那麼處理程序可能無法正確應用,因爲這將是無效的標記。 – David

回答

0

終於找到了解決辦法。 此問題已被詢問。對不起!

Is it OK to put JavaScript in Partial Views

在這裏我得到了計算器本身類似類型的問題。

1)MVC4 partial view javascript bundling Issue

2)javascript-not-working-in-partial-view

3)document-ready-is-not-working-correctly-in-partial-view

4)How to execute JavaScript function on PartialView load in MVC 3在我的項目

所以,我做了單獨的.js文件製作的JavaScript excecutable然後我只需像這樣調用這個js文件即可。

部分瀏覽:

<script src="~/Scripts/stategrid.js" type="text/javascript"></script> 
+0

您所做的聲明「我們無法在部分視圖中使用腳本代碼不正確」。這是**不錯的做法**不要在部分視圖中使用腳本。對於您的情況,我認爲您應該做的是在$(document#).ready()中爲$(「#delete-link」)執行事件綁定。 ; –

0

我認爲問題是:您的控制器類型爲HttpPost。確保Ajax調用類型爲Post。使用type: "POST"欲瞭解更多信息,請訪問jQuery ajax Documentation

+0

簡單的JavaScript不在這裏工作,Ajax調用是另一回事。我的問題是,如果是,我們可以在部分視圖中進行Ajax調用,那麼應該注意哪些先決條件? –

+0

@SaurabhGadariya有可能!在父視圖中加載jquery,並在部分視圖中使用函數。沒有照顧! –