【问题标题】:How to stop an MVC RedirectToRouteResult JavaScript?如何停止 MVC RedirectToRouteResult JavaScript?
【发布时间】:2009-08-03 21:50:54
【问题描述】:

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

我有一个控制器动作,命名如下...

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;
});

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

【问题讨论】:

    标签: javascript jquery asp.net-mvc


    【解决方案1】:

    把你的控制器改成这样:

    public ActionResult AddWorkAssignment(int id)
    {
        // do work to add the work assignment....
    
        if (Request.IsAjaxRequest())
            return Json(true);
    
        return RedirectToAction("Index", "Assignment");
    }
    

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

    HTH
    查尔斯

    编辑: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();
        }
    }
    

    然后你的控制器:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2011-09-09
      • 2021-04-16
      • 1970-01-01
      相关资源
      最近更新 更多