2012-02-16 37 views
0

我有一個MVC3應用程序,我想直接使用電子郵件中發送的鏈接開始操作。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 - 未找到 您正在查找的資源已被刪除,名稱已更改或暫時不可用。

我在做什麼錯?

感謝

+1

您確定您的網站仍然在端口52972上運行? – 2012-02-16 00:26:37

回答

0

感謝 的實際問題是帕拉姆字符串更復雜,我的評論(我shortend它爲簡單起見,我的帖子)

但是,真正的參數我猜想觸發了一些其他不同的路線(或者可能是額外的參數,誰知道) 我固定t他通過將參數轉換爲十六進制字符串(因此它只包含0-9,a-f)然後它工作

1

控制器和路線看起來是正確的,所以我的猜測,您的應用程序沒有運行,或者在不同的端口上運行。確保在系統托盤中看到ASP.NET Development Server正在運行,如果沒有按F5或ctrl + F5(無調試)啓動它。或者,您可以通過以下帖子爲您的應用設置特定端口:http://msdn.microsoft.com/en-us/library/ms178109%28v=vs.80%29.aspx

祝您好運。

1

如果您的應用程序託管在虛擬目錄中,我懷疑您忘記了應用程序名稱。因此,而不是:

http://localhost:52972/Account/Confirm/c4e80acb46R8uIq 

的鏈接必須是:一切爲您的時間

http://localhost:52972/MyApplicationName/Account/Confirm/c4e80acb46R8uIq 
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 
相關問題