使用 ASP.NET MVC 在 URL 中取得控制器名稱兩次

使用 ASP.NET MVC 在 URL 中取得控制器名稱兩次

很抱歉這個菜鳥問題,但正如您所看到的,控制器名稱在 URL 中出現了兩次,並且只有在 URL 中出現兩次時才有效: 網址

這是我的控制器的樣子: 控制器動作

這是我的觀點:

看法

我知道這不是我的路由,因為如果我建立另一個視圖,路由就可以正常運作。如果我只是輸入http://localhost:50903/用戶然後出現空白畫面。我認為它由於 try-catch 區塊而返回 null,但是當它調用該函數時,這就是 UserDao 中的內容:

用戶.Dao

這是它所呼叫的預存程序:

儲存過程

請幫忙,我要瘋了

答案1

您是否在應用程式中建立了區域?因為如果您建立了區域並在其中放置了使用者控制器資料夾,那麼您可以獲得兩次控制器名稱。正如我所看到的,它顯示了你的第一個控制器名稱使用者是小寫的,因為通常當我們創建區域時,我們大多數時候都會用小寫來命名它。

使用者控制器名稱在 URL 中出現兩次,因為它在 URL 中包含區域名稱,如下所示:

routes.MapRoute(
      name: "user_route",
      template: "{area:required}/{controller:required}/{action}/{id?}",
      defaults: new { area = "users", controller = "Users" 
      });

從路線中刪除區域。

routes.MapRoute(
      name: "user_route",
      template: "{controller:required}/{action}/{id?}",
      defaults: new { controller = "Users", action = "Index" 
      });

因此,您的控制器名稱將僅在 URL 中出現一次。

筆記:只有當您在應用程式中建立了一個區域時,它才有用。如果您沒有創建區域,請告訴我我們會找到另一個解決方案。

希望對你有幫助。
謝謝。

答案2

我發現出了什麼問題。我必須更改控制器的名稱才能使其正常工作。我的應用程式可能會感到困惑,因為控制器名稱與視圖名稱相同。

相關內容