2017-07-31 111 views
-2

我是新來的asp.net MVC。我添加了一個控制器並查看並設置路徑以查看我的索引頁。但它給了我下面的錯誤。MVC asp.net資源無法找到

    The resource cannot be found. 
       Description: HTTP 404. The resource you are looking for (or 
       one of its dependencies) could have been removed, had its 
       name changed, or is temporarily unavailable. Please review 
       the following URL and make sure that it is spelled 
       correctly. 

     Requested URL:/
+0

如果你設置的路由,那麼請告訴我們您的路由配置和相關的控制器 – Marco

+0

公共靜態無效的RegisterRoutes(RouteCollection路線) { routes.IgnoreRoute( 「{}資源個.axd/{*} PATHINFO」); routes.MapRoute( name:「Default」, url:「{controller}/{action}/{id}」, 默認值:new {controller =「Home」,action =「Index」,id = UrlParameter .Optional} ); – waleed

+0

控制器是公共類Home1Controller:控制器 { // // GET:/ HOME1/ 公共的ActionResult指數() { 返回查看(); } } – waleed

回答

2

從您的意見我認爲,你誤解了MVC的基本工作原理。 (你可以在這裏看到:https://www.asp.net/mvc

默認情況下,MVC有很多約定,所以它知道路由如何映射到控制器等等。當您向url發出請求時,MvcHandler的默認實現將接收來自默認ControllerFactory實現的控制器實例,該實現具有約定,控制器必須以名稱Controller結束。這意味着,在您的示例中,/Home1Controller/允許控制器工廠查找名爲Home1ControllerController的控制器類,這很可能不存在。

爲了完整起見,這裏是由thew默認控制器工廠的標準確定了正確的控制器:

  • 類範圍必須是公共
  • 類不能是抽象的
  • 類不能採取一般參數
  • 類名必須以「Controller」結尾
  • 類必須執行IController接口。

所以,如果你保持默認的路由,你已經和你已經創建了一個名爲Home1Controller控制器,那麼航線上,您可以訪問該指數的方法是:/Home1/Index

如果控制器將namend FooController,那麼URL將/Foo/