2017-08-10 88 views
1

我想在ASP.Net Mvc中的按鈕單擊事件上傳遞我的組合框值,但它首先發送請求,然後發送請求。但我不想發送Get請求。爲什麼jQuery Ajax在Post之前發送Get請求?

<script type="text/javascript"> 
    $(function() { 
     $("#btnSave").click(function() { 
      $.ajax({ 
       url: '@Url.Action("ExportButton")', 
       type: 'POST', 
       data: { 
        Parameter: mycombobox.GetValue() 
       } 
      }); 
      $('#btnSave').unbind('click'); 
      return false; 
     }); 
    }); 
</script> 

任何想法?

編輯:

這裏是我的按鈕:

@Html.DevExpress().Button(itemSettings => 
{ 
    itemSettings.Width = 150; 
    itemSettings.Styles.Native = true; 

    itemSettings.Name = "btnSave"; 
    itemSettings.Text = "Save"; 
    itemSettings.UseSubmitBehavior = false ; 
    itemSettings.RouteValues = new { Controller = "Report", Action = "ExportButton"}; 
} 
).GetHtml() 

組合框:

@Html.DevExpress().ComboBox(itemSettings => 
{ 

    var properties = itemSettings.Properties; 
    properties.Caption = "Save As "; 
    properties.Items.Add("PDF", "PDF"); 
    properties.Items.Add("EXCEL", "EXCEL"); 
    properties.Items.Add("CSV", "CSV"); 
    itemSettings.Name = "mycombobox"; 

    properties.ValueType = typeof(string); 
} 
).GetHtml() 

編輯2:

我意識到我的jQuery日前發出 「get」 方法「發佈「方法。

enter image description here

在此先感謝。

+0

立即解決方法是在一個'if(mycombobox.GetValue()){}中有一個ajax {0}' –

+0

你是否在某種程度上阻止按鈕的默認操作?它可能也提交表單? –

+0

顯示標記/網頁代碼 –

回答

0

我不認爲你的Ajax運行了兩次。根據您包含的圖片,這些請求來自不同的來源。第一個是來自文檔的GET,第二個是POST的Ajax調用,您可以看到它使用XHR。嘗試懸停或點擊每一行以獲得更詳細的信息。

+0

就像你說的,問題是按鈕創建部分的另一行。 – pseudocode

0

你有沒有試過這種方式?

<script type="text/javascript"> 
    $(function() { 
     $("#btnSave").unbind().click(function() {//unbind your click event here 
      $.ajax({ 
       url: '@Url.Action("ExportButton")', 
       type: 'POST', 
       data: { 
        Parameter: mycombobox.GetValue() 
       } 
      }); 
     }); 
    }); 
</script> 
+1

感謝您的回答,但它沒有奏效。同樣的結果。 – pseudocode

+0

*你有沒有發現過。 –

0

The docs狀態點擊是用於.on("click", handler)的快捷方法,用.off("click")用於解除綁定,代替unbind()暗示。試一試 !

0

我終於解決了這個問題。

@Html.DevExpress().Button(itemSettings => 
{ 
    itemSettings.Width = 150; 
    itemSettings.Styles.Native = true; 

    itemSettings.Name = "btnSave"; 
    itemSettings.Text = "Save"; 
    itemSettings.UseSubmitBehavior = false ; 
    itemSettings.RouteValues = new { Controller = "Report", Action = "ExportButton"}; // This line send Get request! 
} 
).GetHtml() 

當我刪除itemSettings.RouteValues線,解決了問題。

相關問題