2014-05-17 137 views
0

我有一個是從列表中創建一些按鈕,所以當按鈕被創建我做到以下幾點:參數傳遞到JavaScript函數

<button id="@objClass.Id.ToString()"onclick="EditClass(this.id)">Edit</button> 

一旦按鈕被點擊下面的代碼運行。當我爲url.action中的clicked_id硬編碼值時,一切都很好。我的問題是如何將從EditClass函數傳遞到我的url.action的值。

function EditClass(clicked_id) 
{ 
    $('#editClassView').dialog(
    { 
     modal: true, 
     position: ['top', 'center'], 
     resizable: false, 
     autoOpen: false, 
     open: function (clicked_id) 
     { 
      $(this).load("@Url.Action("Update", "Class", new { area = "manager", nClassId = clicked_id })", 
      function (response, status, xhr) 
      { 
       $('#editClassView').dialog('open'); 
       return false; 
      }); 
     } 
    }); 

    $('#editClassView').dialog('open'); 
} 
+1

'$(this).load'行中的代碼全部混亂(引號)。我對Razor並不熟悉,但它看起來像是在服務器端運行的代碼,正確的URL實際上是在服務器端生成的,並且無法訪問僅存在於客戶端上的'clicked_id'。但我不知道,可能有助手方法來生成「動態」路線。 –

+1

菲利克斯是對的。這個鏈接可能會幫助你http://stackoverflow.com/questions/2012610/generating-an-action-url-in-javascript-for-asp-net-mvc – ekcr1

+0

我看着正在通過在服務器端生成。我想我需要做我的重定向在客戶端JavaScript。 – user3648646

回答

0

就在url之後,在loaf函數中,您可以傳遞數據對象。 因此...

var data = { my_variable: "value"}; 
$(this).load(url, data, function (response, status, xhr) { 
    $('#editClassView').dialog('open'); 
    return false; 
});