C# MVC 3代URL
在我的应用程序中,我希望能够向用户发送电子邮件。在电子邮件中,我希望有一个指向应用程序页面的URL链接,但URL必须是通用的(因为我需要能够从DB获取一些数据,这取决于电子邮件的通用部分) 例如: 我通过URL向用户发送电子邮件:www.testpage.com/recetpassword/Qb12T 在加载页面时,我需要从数据库中获取数据,例如说欢迎用户名(我从数据库中获取)C# MVC 3代URL,c#,asp.net-mvc,asp.net-mvc-3,model-view-controller,C#,Asp.net Mvc,Asp.net Mvc 3,Model View Controller,在我的应用程序中,我希望能够向用户发送电子邮件。在电子邮件中,我希望有一个指向应用程序页面的URL链接,但URL必须是通用的(因为我需要能够从DB获取一些数据,这取决于电子邮件的通用部分) 例如: 我通过URL向用户发送电子邮件:www.testpage.com/recetpassword/Qb12T 在加载页面时,我需要从数据库中获取数据,例如说欢迎用户名(我从数据库中获取) 坏例子,但它解释了我需要什么看起来您需要在Global.asax.cs文件中添加一个新的静态路由: routes.Ma
坏例子,但它解释了我需要什么看起来您需要在
Global.asax.cs
文件中添加一个新的静态路由:
routes.MapRoute(
"reset_password", // Route name
"resetpassword/{id}",
new { controller = "SomeController",
action = "ChangePassword",
id = UrlParameter.Optional
}
);
然后在控制器中:
public class SomeController : Controller {
[HttpGet]
public ActionResult ChangePassword(string id){
/* change password logic/domain calls */
return View(/* some model */);
}
}
看起来您需要在
Global.asax.cs
文件中添加新的静态路由:
routes.MapRoute(
"reset_password", // Route name
"resetpassword/{id}",
new { controller = "SomeController",
action = "ChangePassword",
id = UrlParameter.Optional
}
);
然后在控制器中:
public class SomeController : Controller {
[HttpGet]
public ActionResult ChangePassword(string id){
/* change password logic/domain calls */
return View(/* some model */);
}
}
很抱歉,但我们如何能具体帮助你呢?太好了。你试过什么?你有什么问题吗?给我们看看你的代码和你遇到的问题?现在你的帖子只是展示了你想做的事情;不是您实际遇到的问题。您是否尝试过URL.Action或URL.RouteUrl的URL帮助程序?对所有这些方法使用最后一个重载非常重要,它允许您指定“协议”,并为您生成完整的URL。例如:Url.RouteUrl(“ResetPassword”,new{id=“Qb12T”},“http”)或Url.Action(“ResetPassword”,“Account”,new{id=“Qb12T”},“http”),这就是重点,我不知道从哪里开始。。。大概是这样的:?很抱歉,但我们如何能具体帮助你呢?太好了。你试过什么?你有什么问题吗?给我们看看你的代码和你遇到的问题?现在你的帖子只是展示了你想做的事情;不是您实际遇到的问题。您是否尝试过URL.Action或URL.RouteUrl的URL帮助程序?对所有这些方法使用最后一个重载非常重要,它允许您指定“协议”,并为您生成完整的URL。例如:Url.RouteUrl(“ResetPassword”,new{id=“Qb12T”},“http”)或Url.Action(“ResetPassword”,“Account”,new{id=“Qb12T”},“http”),这就是重点,我不知道从哪里开始。。。大概是这样的:?添加路由并使该部分正常工作后,可以使用Url.RouteUrl(“重置密码”,new{id=“Qb12T”},“http”)或Url.Action(“更改密码”,“SomeController”,new{id=“Qb12T”},“http”)生成链接以放置在传出电子邮件中。本地测试Url如何调用该路由?添加路由并使该部分正常工作后,可以使用Url.RouteUrl(“重置密码”,new{id=“Qb12T”},“http”)或Url.Action(“ChangePassword”,“SomeController”,new{id=“Qb12T”},“http”)生成要放置在传出电子邮件中的链接。本地测试Url如何调用该路由?