首页 > 解决方案 > AJAX 在控制器上调用不同的操作

问题描述

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 和对 type='get' 的 ajax 调用,这也不起作用。

我无法确定这里到底是什么问题。请注意,页面上没有提交按钮或表单。为其写入点击事件的元素只是普通链接。

标签: ajaxasp.net-mvcaction

解决方案


.GetF课程来自一个按钮?

我认为它是您正在单击的按钮,并且此按钮type已提交,并且您正在索引页面中工作。

改变你的按钮type="button",你不需要使用e.preventDefault();

$.post('@Url.Action("test1", "flyer")',
                {
                    selectedIds: '1',
                }).done(function (data) {
});

我认为这将解决您的问题。


推荐阅读