在操作链接中分配角色

时间:2015-11-24 21:04:20

标签: razor asp.net-mvc-5

我正在努力通过在actionLink中嵌入方法来避免用户错误,以便在用户点击"商家"或"追随者"它将它们带到“注册”屏幕,默认情况下,一旦按下提交按钮进行注册,就会将它们分配给他们点击的角色(商家或关注者)。我正在使用UserIdentity框架进行注册。现在我可以使用一个允许用户选择角色的下拉框,但我觉得这会让更多的用户错误发生。

    p class="lead">Register a @Html.ActionLink("Merchant", "Register", "Account") or Register as a @Html.ActionLink("Follower", "Register", "Account")</p>

那么我可以在ActionLink中添加另一个重载来处理吗?如果是这样,伪代码会是什么样的?

1 个答案:

答案 0 :(得分:2)

更改控制器方法以包含角色的参数,以便在将模型传递给视图之前将其分配给模型

public ActionResult Register(string role)
{
  var model = new RegisterModel
  {
    Role = role
  }
  return View(role);
}

然后修改指向

的链接
@Html.ActionLink("Merchant", "Register", "Account", new { role = "Merchant" }, null)

现在将生成/Account/Register?role=Merchant。要生成/Account/Register/Merchant,您可以在RouteConfig.cs文件中定义特定路由(确保它是第一个)

routes.MapRoute(
    name: "Register",
    url: "Account/Register/{role}",
    defaults: new { controller = "Account", action = "Register" }
);