Asp.net mvc 值未使用ajax从视图传递到控制器

Asp.net mvc 值未使用ajax从视图传递到控制器,asp.net-mvc,asp.net-ajax,Asp.net Mvc,Asp.net Ajax,我试图使用ajax将一个值传递给我的控制器 ajax代码如下所示: var myId = $(".slectOne[checked]").attr("data-id"); $.ajax({ url: '@Url.Action("reservation_step_1", "Home")', type: 'POST', data: { id: myId }

我试图使用ajax将一个值传递给我的控制器

ajax代码如下所示:

           var myId = $(".slectOne[checked]").attr("data-id");

            $.ajax({
                url: '@Url.Action("reservation_step_1", "Home")', 
                type: 'POST',
                data: { id: myId },
            });
        [HttpPost]
        [AllowAnonymous]
        public ActionResult reservation_step_1(string id)
        {
            string val = id;

            return RedirectToAction("reservation_step_2", "Home", new { val = val });
        }
控制器代码如下:

           var myId = $(".slectOne[checked]").attr("data-id");

            $.ajax({
                url: '@Url.Action("reservation_step_1", "Home")', 
                type: 'POST',
                data: { id: myId },
            });
        [HttpPost]
        [AllowAnonymous]
        public ActionResult reservation_step_1(string id)
        {
            string val = id;

            return RedirectToAction("reservation_step_2", "Home", new { val = val });
        }

我不确定我是否做错了什么,但我的id值在控制器中为空。

这肯定会起作用

控制器

public class HomeController : Controller
{
    [HttpPost]
    public ActionResult reservation_step_1(string id)
    {
        string val = id;

        return RedirectToAction("reservation_step_2", "Home", new { val = val });
    }

    //my controller action name, yours is different
    public ActionResult Tut118()
    {
        return View();
    }
看法


$.slectOne[checked]是什么?您的问题似乎在路由中,请尝试将参数的名称更改为,并将httpmethod更改为Get。我刚刚尝试了一下,但传递了一个空值。我试图打断每一行,以查看控制器中发生的情况,发现值正在从视图传递到控制器,一旦值变为null并将null值传递给接收操作,就会运行reservation\u step\u 1操作。“知道为什么会这样吗,先生?”丹尼尔我唯一能说的是,我知道这样的事情很痛苦。我知道我的代码有效我不知道为什么你的代码无效。你可以通过谷歌找到解决方案。你的代码运行得很好,我只是不确定为什么它会在操作中循环两次,在第一个循环中,我可以看到传递的值,但在第二个循环中,值变为null。如果.ajax代码被调用两次,它可能会循环两次。比如有一次在点击按钮时从触发器开始,还有一次只是在触发器之外调用.ajax。你说得100%对,我已经用Html.BeginFormreservation\u step_1,Home,FormMethod.Post注释掉了我的内容,然后只运行onceNo循环,但现在一旦我点击提交按钮,数据就可以正常传递,但我的下一页无法加载。它只是停留在我点击按钮的页面上