我是Javascript的新手。我在以下场景中需要帮助:
我的视图中有2个下拉列表,还有一个Anchor(a)元素。单击此锚元素,我想重定向到另一个视图(基本上必须调用另一个动作函数),但我需要传递在这2个下拉列表中选择的当前值。简而言之,我需要调用另一个动作函数并传递下拉中选择的2个当前值。
我编写了以下Ajax代码,但总是会出现错误部分:
$.ajax({
type: 'GET',
url: Url.Action("ActionMethod", "MyController"),
data: {
param1: DD1Value,
param2: DD2Value,
param3: xyz
},
success: function (data) {
window.location.href = data.redirecturl;
},
error: function () {
alert('error happened');
}
});
控制器:
[HttpGet]
public ActionResult ActionMethod(DateTime param1, DateTime param2, string param3)
{
//Do some work
//Return View
}
编辑: 我明白Ajax的重点在于保持同一页面。我也试过使用window.location.href,:
window.location.href = "/MyController/ActionMethod?param1=" + DD1Value+ "¶m2=" + DD2Value+ "¶m3=" + "xyz"
但是这会导致路由错误。无法更改Route.config以适应此目的。
答案 0 :(得分:0)
您可以使用下面显示的Ajax调用将DropDownList值传递给Controller bu:
<script>
$(document).ready(function () {
$(".SelectedCustomer").change(function (event) {
$.ajax({
url: '@Url.Action("ActionMethod", "MyController")',
data: {
param1: $('#DD1').val(),
param2: $('#DD2').val(),
param3: xyz
/* add other additional parameters */ },
cache: false,
type: "POST",
dataType: "html",
success: function (data, textStatus, XMLHttpRequest) {
SetData(data);
},
error: function (data) { onError(data); }
});
});
});
</script>
希望这会有所帮助......