我正在努力通过在actionLink中嵌入方法来避免用户错误,以便在用户点击"商家"或"追随者"它将它们带到“注册”屏幕,默认情况下,一旦按下提交按钮进行注册,就会将它们分配给他们点击的角色(商家或关注者)。我正在使用UserIdentity框架进行注册。现在我可以使用一个允许用户选择角色的下拉框,但我觉得这会让更多的用户错误发生。
p class="lead">Register a @Html.ActionLink("Merchant", "Register", "Account") or Register as a @Html.ActionLink("Follower", "Register", "Account")</p>
那么我可以在ActionLink中添加另一个重载来处理吗?如果是这样,伪代码会是什么样的?
答案 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" }
);