邮件重置密码链接无法跳转至指定页面问题求助
问题解决:密码重置链接无法访问
核心问题分析
你的邮件链接生成代码存在两个明显错误:
- 路径多了重复斜杠:
urlDomain末尾已经包含/,拼接时又添加了开头的/,导致最终URL变成https://localhost:1111//ChangePasswords/ChangePassword/,双斜杠会干扰路由解析。 - 字符串未闭合:
url变量的字符串末尾缺少闭合引号,属于语法错误(虽可能编译通过,但会导致URL格式异常)。
修正代码
将邮件链接生成代码修改为:
string urlDomain = "https://localhost:1111/"; // 去掉路径开头的多余斜杠,同时补全字符串引号 string url = urlDomain + "ChangePasswords/ChangePassword"; builder.HtmlBody = "<p>RECOVER PASSWORD</p><br>" + "<a href='" + url + "'>Click to recover</a>";
或者调整urlDomain去掉末尾斜杠,保持拼接逻辑更清晰:
string urlDomain = "https://localhost:1111"; string url = urlDomain + "/ChangePasswords/ChangePassword"; builder.HtmlBody = "<p>RECOVER PASSWORD</p><br>" + "<a href='" + url + "'>Click to recover</a>";
额外验证点
- 确认ASP.NET MVC路由配置为默认规则(确保控制器/动作的路径能被正确解析):
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
- 确保
ChangePasswords控制器类是public访问修饰符,ChangePassword动作方法也是public(你的代码片段中已满足,需确认完整代码无遗漏)。
内容的提问来源于stack exchange,提问作者popo
相关产品推荐
相关产品推荐

