设置:
我正在使用Html.ActionLink助手为我的操作创建标签Reset,在控制器PasswordReset中,在区域中Admin。
Html.ActionLink 调用(已编辑,但仍然没有乐趣):
对 Html.ActionLink 的调用在 foreach 循环中(html 简化):
foreach(var item in Model.Entities)
{
   <p>
      @Html.ActionLink("Reset Password", 
          "Reset",
          "PasswordReset", 
          new {area="Admin", 
               userName=item.UserName, 
               email=item.Email, 
               roles=item.Roles},
          null)
   </p>
}
我的行动:
[HttpGet]
        public virtual ActionResult Reset(string userName, string email, string roles)
        {
            if (string.IsNullOrEmpty(userName)) throw new ApplicationException("Invalid Username!");
            var ue = new UsernameEmailDTO
            {
                UserName = userName,
                Email = email,
                Roles = roles
            };
            return View(ue);
        }
路线:
context.MapRoute(
            "Admin_PasswordReset",
            "Admin/Password/Reset/{userName}",
            new { controller = "PasswordReset", action="Reset", email = UrlParameter.Optional, roles = UrlParameter.Optional }
        );
问题:
我可以使用路由直接调用操作。
但是,我的操作链接只生成一个指向当前页面的链接。
所以我的 Html.ActionLink 代码中一定有错误。
但是什么?!
非常令人沮丧,因为我以为我已经克服了这种疼痛障碍。