C# MVC 3代URL

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

在我的应用程序中,我希望能够向用户发送电子邮件。在电子邮件中,我希望有一个指向应用程序页面的URL链接,但URL必须是通用的(因为我需要能够从DB获取一些数据,这取决于电子邮件的通用部分)

例如:

我通过URL向用户发送电子邮件:www.testpage.com/recetpassword/Qb12T

在加载页面时,我需要从数据库中获取数据,例如说欢迎用户名(我从数据库中获取)


坏例子,但它解释了我需要什么

看起来您需要在
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如何调用该路由?