我想在ASP.Net Mvc中的按钮点击事件上传递我的组合框值,但它先发送get请求然后发送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发送&#34; get&#34;之前的方法&#34; Post&#34;方法
提前致谢。
答案 0 :(得分: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 :(得分:0)
The docs表示点击是.on("click", handler)
的快捷方式,建议使用.off("click")
进行解除绑定,而不是unbind()
。试一试!
答案 2 :(得分:0)
我认为您的Ajax没有运行两次。根据您包含的图像,这些请求来自不同的来源。第一个是文档中的GET,第二个是POST的Ajax调用,您可以看到它正在使用XHR。尝试将鼠标悬停在每条线上或点击每条线以获取更详细的信息。
答案 3 :(得分: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 行时,问题已解决。