Asp.net mvc 值未使用ajax从视图传递到控制器
我试图使用ajax将一个值传递给我的控制器 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 }
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循环,但现在一旦我点击提交按钮,数据就可以正常传递,但我的下一页无法加载。它只是停留在我点击按钮的页面上