【发布时间】:2012-07-10 14:18:46
【问题描述】:
我正在开发一个 ASP.Net MVC 3 Web 应用程序。我的 Razor 视图之一包含一些文本框和一个下拉列表。当用户从下拉列表中选择一个选项时,将执行以下 JQuery 代码
查看
<select id="myDDL">
<option></option>
<option value="1">F1</option>
<option value="2">F2</option>
<option value="3">ST1</option>
<option value="4">ST2</option>
</select>
<div id="someDivToLoadContentTo">
</div>
JQuery
$(document).ready(function () {
$("#myDDL").change(ChangeEventOfDDL);
function ChangeEventOfDDL(){
var dropDownValue = $('#myDDL').val();
//alert(dropDownValue);
$.ajax({ type: "GET",
url: '@Url.Action("SomePartialView","testAjax")',
data: {
id: dropDownValue
},
success: function(data) {
$('#someDivToLoadContentTo').html(data);
}
});
}
});
控制器
public class testAjaxController : Controller
{
public ActionResult SomePartialView(int id)
{
var test = "Hello World";
return View(test);
}
}
但是,当我在 testAjax 控制器中的 SomePartialView 方法上设置断点时,它永远不会被命中。
谁能说明这是为什么?
任何帮助将不胜感激。
谢谢。
更新
我像这样在我的 Ajax 调用中添加了 errorData 行,但这似乎也没有给我任何东西
$(document).ready(function() {
$("#myDDL").change(ChangeEventOfDDL);
function ChangeEventOfDDL(){
var dropDownValue = $('#myDDL').val();
//alert(dropDownValue);
$.ajax({ type: "GET",
url: '@Url.Action("SomePartialView","testAjax")',
data: {
id: dropDownValue
},
success: function(data) {
$('#someDivToLoadContentTo').html(data);
},
error: function (errorData) { $('#someDivToLoadContentTo').html(errorData); }
});
}
});
【问题讨论】:
-
如果在操作上方添加 [HttpGet] 会发生什么?
-
您确定没有缓存结果吗?此外,根据您的浏览器,使用可用的调试工具来确定浏览器是否正在(或试图)进行外部调用。
-
是的,如果您在 Firefox 中运行 Firebug。打开“网络”选项卡,查看当您按下更改下拉菜单时它会尝试做什么
-
@GazWinter 我添加了[HttpGet],但它仍然没有达到动作
-
您已注释掉的警报,未注释时会触发吗?
标签: asp.net-mvc-3 jquery asp.net-ajax