2013-01-22 53 views
1

我在拉我的頭髮。爲了愛我的生活,我不能做這項工作。我有我的觀點的一種形式:Ajax調用在mvc中不起作用4

<div id="cancel" class="cancel"> 
    <form method="post" class="cancelForm"> 
    <input type="hidden" class="cancelId" name="cancelId" value="@appliedLvl.LeavesId" /> 
    <input id="cancelMe" class="cancelMe" type="submit" value="Cancel"/> 
    </form> 
</div> 

JavaScript的

$(document).ready(function() { 

$(".cancelForm").submit(function() { 
    var MYcancelId = $('.cancelId').val(); 

    $.ajax({ 
     type: "POST", 
     url: "/Home/Cancel", 

     success: function (result) { 
      alert("ok"); 
     }, 
     error: function (request, status, error) { 
      debugger; 
      confirm(request); 
     } 
    }); 
    }) 
}); 

和控制器

[HttpPost] 
    public ActionResult Cancel(Guid cancelId) 
    { 
     //do stuff here 
     return PartialView(); 
    } 

我總是進入阿賈克斯的誤差函數。無論我嘗試過什麼。這個相同的JavaScript代碼在我的PHP項目上完美工作。不知道這裏有什麼問題。感謝advace尋求幫助。

編輯

錯誤這裏的事實是,我在操作一個GUID不是字符串期待!

+1

您是否收到錯誤?您是否嘗試過使用fiddler來查看請求是否返回了與您期望的不同的HTTP狀態代碼? –

回答

4

您沒有傳遞一個cancelId參數,因此它沒有看到您的控制器方法。

$(document).ready(function() { 

$(".cancelForm").submit(function() { 
    var MYcancelId = $('.cancelId').val(); 

$.ajax({ 
    type: "POST", 
    url: "/Home/Cancel", 
    data: { cancelId = MYcancelId }, 
    success: function (result) { 
     alert("ok"); 
    }, 
    error: function (request, status, error) { 
     debugger; 
     confirm(request); 
    } 
}); 
}) 
}); 
+0

是的,即使如此,它仍然給我一個錯誤。但我想出來了,謝謝Fiddler。問題是我是個白癡。在控制器中,我期待Guid,而我正在發送一個字符串! – idipous

+0

啊,這樣做也會如此:)我應該首先注意到這一點。提琴手是一個很棒的工具,我總是建議從它開始。很高興你明白了! –

+0

那麼...問題是,只有IE似乎工作。 Firefox和Chrome仍然會出錯。 – idipous