我有一个MVC3应用程序,我想直接使用电子邮件中发送的链接开始操作。
链接看起来像这样
http://localhost:52972/Account/Confirm/c4e80acb46R8uIq
在我的MVC应用程序中,我有一个AccountController,我创建了一个动作确认,如下所示:
public ActionResult Confirm(string id)
{
ViewBag.ConfirmMessage = id;
return View();
}
我在global.asax上的路线是默认路线,
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
当我尝试访问链接时,我没有进入控制器的操作,而是出现错误
HTTP错误404.0 - 未找到 您要查找的资源已被删除,名称已更改或暂时不可用。
我做错了什么?
由于
答案 0 :(得分:1)
您的控制器和路由看起来正确,所以我猜您的应用程序没有在不同的端口上运行或运行。确保在系统托盘中看到ASP.NET Development Server正在运行,如果不是,请按F5或ctrl + F5(不调试)启动它。您可以选择按照以下帖子为应用设置特定端口:http://msdn.microsoft.com/en-us/library/ms178109%28v=vs.80%29.aspx
祝你好运。
答案 1 :(得分:1)
如果您的应用程序托管在虚拟目录中,我怀疑您忘记了应用程序名称。所以而不是:
http://localhost:52972/Account/Confirm/c4e80acb46R8uIq
链接必须是:
http://localhost:52972/MyApplicationName/Account/Confirm/c4e80acb46R8uIq
答案 2 :(得分:1)
1-) Your server may down.
2-) Your port may be changed
3-) Your view does not exist.
solutions.
1-) Start your app again :)
2-) Set your application port as static from;
Properties->Web->Servers Specific Port
3) Add new view
答案 3 :(得分:0)
谢谢大家的时间 实际问题是param字符串比我发布的内容更复杂(我在帖子中为了简单起见而将其缩短)
然而,真正的参数我想是触发了一些其他不同的路线(或者更多的参数,谁知道) 我通过将参数转换为十六进制字符串(因此它只包含0-9,a-f)来解决问题,然后它起作用