如何手动将返回URL传递给Action asp.net mvc5

时间:2017-05-10 21:10:20

标签: c# asp.net asp.net-mvc

我正在创建一个电子商务mvc5 Web应用程序。我有一个动作" ListItem"用户可以列出要出售的物品。我创建了一个自定义授权属性,用于检查用户是否处于卖方角色,如果没有,则将用户重定向到设置操作,用户可以在该操作中注册公司名称和taxId等,以添加到卖方角色。 既然用户注册了(并且已添加到卖家角色),我想通过传入"返回将用户重定向到" listItem操作"(用户可以继续并列出他们的项目)网址"到"设置操作"。我不确定这是如何实现的(我对asp.net mvc相当新)有人可以帮帮我吗?感谢。

2 个答案:

答案 0 :(得分:0)

  

现在我想将用户重定向到listItem action

那么为什么不使用像

这样的RedirectToAction()方法
return RedirectToAction(action, controller);

答案 1 :(得分:0)

重定向到Setup操作时,请向失败的授权路由数据添加returnUrl

例如,覆盖HandleUnauthorizedRequest中的AuthorizeAttribute

public sealed class CompanyMustBeRegisteredAttribute : AuthorizeAttribute
{
    public override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        // or filterContext.HttpContext.Request.RawUrl
        var returnUrl = filterContext.HttpContext.Request.Url.ToString();
        filterContext.Result =
            new RedirectToActionResult("Setup", "SetupController", new { returnUrl });
    }
}