AJAX方法:
$(".GetF").click(function (e) {
e.preventDefault();
$.post('@Url.Action("test1", "flyer")', { "selectedIds": "1"})
.done(function (data) {
alert("Data Loaded: " + data);
});
});
控制器操作:
[HttpPost]
public ActionResult test1(string selectedIds)
{
......
return Json(list, JsonRequestBehavior.AllowGet);
}
每次我进行此ajax调用时,它仅调用以下方法
[HttpPost]
public ActionResult Index(FViewModel vm)
{
}
我尝试将方法更改为HTTPGet并将ajax调用更改为type ='get',但这也不起作用。
我无法确定这里到底是什么问题。请注意,页面上没有提交按钮或表格。为其写入click事件的元素只是普通链接。
答案 0 :(得分:0)
这可能是您的路由问题。 请尝试在不使用Url.Action()的情况下发布到端点,以帮助排除路由问题。 例如$ .post('http://localhost:53149/test1',{selectedIds:“ 1”})
很显然,您需要用自己的端口替换上面的端口(53149),但这应该有助于找出问题所在。 如果直接链接问题仍然存在,请检查您的路由表,并确保您的test1方法会被命中,然后再被索引方法捕获。
答案 1 :(得分:0)
.GetF
类是否来自按钮?
我认为您正在单击的是一个按钮,而type
这个按钮已提交,并且您正在索引页面中工作。
更改按钮type="button"
,您无需使用e.preventDefault();
$.post('@Url.Action("test1", "flyer")',
{
selectedIds: '1',
}).done(function (data) {
});
我认为这可以解决您的问题。