gpt4 book ai didi

javascript - 如何停止 MVC RedirectToRouteResult JavaScript?

转载 作者:行者123 更新时间:2023-11-29 10:55:01 24 4
gpt4 key购买 nike

我正在设计一个网站,并试图与关闭或打开的 javascript 兼容。

我有一个如下命名的 Controller Action...

public RedirectToRouteResult AddWorkAssignment(int id)
{
// delegate the work to add the work assignment...

return RedirectToAction("Index", "Assignment");
}

和我的 jQuery 我做了一个帖子

$('#someButton').click(function() {
var id = $('#whereTheIDIs').val();
$.post('/Assignment/AddWorkAssignment/' + id);
return false;
});

但是 Controller 上的 RedirectToAction 会做到这一点....我如何停止重定向发生,或者我如何构造 Controller 和页面来处理这个,因为我希望在打开 javascript 时发生重定向关闭。

最佳答案

将你的 Controller 改成这样:

public ActionResult AddWorkAssignment(int id)
{
// do work to add the work assignment....

if (Request.IsAjaxRequest())
return Json(true);

return RedirectToAction("Index", "Assignment");
}

您也可以创建自己的过滤器属性...很像 AcceptVerbs 属性。

HTHs
查尔斯

编辑:AjaxRequest ActionMethodSelectorAttribute 属性

here 启动

public class AjaxRequest : ActionMethodSelectorAttribute
{
public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
{
if (controllerContext == null)
throw new ArgumentNullException("controllerContext");

return controllerContext.HttpContext.Request.IsAjaxRequest();
}
}

然后你的 Controller :

public RedirectToRouteResult AddWorkAssignment(int id)
{
// do work to add the work assignment....

return RedirectToAction("Index", "Assignment");
}

[AjaxRequest]
public JsonResult AddWorkAssignment(int id)
{
// do work to add the work assignment....

return Json(true);
}

关于javascript - 如何停止 MVC RedirectToRouteResult JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com