Razor 在操作链接中分配角色

Razor 在操作链接中分配角色,razor,asp.net-mvc-5,Razor,Asp.net Mvc 5,我试图通过在actionLink中嵌入一个方法来尽量避免用户错误,这样当用户单击“商家”或“关注者”时,当他们点击提交按钮进行注册时,它会将他们带到注册屏幕,默认情况下会将他们分配给他们单击的角色(商家或关注者)。我正在使用UserIdentity框架进行注册。现在,我可以使用一个下拉框,允许用户选择他们的角色,但我觉得这将允许更多的用户错误发生 p class="lead">Register a @Html.ActionLink("Merchant", "Register", "

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

    p class="lead">Register a @Html.ActionLink("Merchant", "Register", "Account") or Register as a @Html.ActionLink("Follower", "Register", "Account")</p>
p class=“lead”>注册@Html.ActionLink(“商户”、“注册”、“账户”)或注册为@Html.ActionLink(“关注者”、“注册”、“账户”)


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

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

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
文件中定义特定的路由(确保它是第一个路由)


@Html.ActionLink(“商户”、“注册”、“账户”,新的{role=“Merchant”},null)
然后将
字符串角色的参数添加到
注册
方法谢谢我会尝试一下,谢谢

注册一个@Html.ActionLink(“商家”、“注册”、“帐户”、新的{role=“商家”})或注册为@Html.ActionLink(“关注者”、“注册”、“帐户”)

我使用了它并进行了更改,链接现在断开了。我一直在努力修复它。追随者仍然有效,但商人不起作用。这里是否有我没有看到的错误?请参阅我的第一条注释-最后一个参数必须是
null
,您是否将方法更改为
public ActionResult Register(string role)
?是的,添加最后一个参数就可以了。因为我还在上学,你能告诉我添加null参数的作用吗?我知道什么是“空”只是不知道为什么它需要在那里工作。我很感激。谢谢
routes.MapRoute(
    name: "Register",
    url: "Account/Register/{role}",
    defaults: new { controller = "Account", action = "Register" }
);