2013-06-24 70 views
6

Tôi vừa tạo một dự án ASP.NET MVC 3 mới với công cụ Dao cạo. Tôi đã thêm một bộ điều khiển vào thư mục bộ điều khiển, và sau đó tại homController.cs Tôi đã thêm một chế độ xem.Lỗi máy chủ trong ứng dụng '/' trong ASP.NET MVC 3 với công cụ Razor

The View (index.cshtml) chỉ có mã này:

@{ 
    ViewBag.Title = "Home"; 
} 

<h2>Home</h2> 

Và khi tôi bắt đầu gỡ lỗi nó cho thấy tôi lỗi này:

Server Error in '/' Application. 
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:/

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.225 

vấn đề là gì?

+0

Tôi tưởng tượng tuyến đường của bạn sai - tên của bộ điều khiển của bạn là gì? – glosrob

+0

homController.cs là tên của bộ điều khiển ... tuyến đường khi tôi gỡ lỗi nó là: 'http: // localhost: 13628 /' và nó không phải là workign! – user2478115

+0

Khi tôi tạo một ứng dụng web asp.net (không có MVC) và gỡ lỗi, nó hoạt động hoàn hảo .... Tôi không biết tại sao lỗi này lại xuất hiện! – user2478115

Trả lời

6

bạn có thể kiểm tra App_Start/RouteConfig.cs, bạn phải có mã này cho một bộ điều khiển gọi là homController.cs:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "hom", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

Tôi cho rằng, tên điều khiển đầu tiên của bạn không phải là 'Trang chủ', vì vậy bạn phải thay đổi tên bộ điều khiển mặc định!

+0

bạn có thể cho tôi biết nơi tìm App_Start/RouteConfig.cs ??? Tôi đã tìm mọi thư mục trong trình khám phá giải pháp nhưng tôi không thể tìm thấy những gì bạn đang nói – user2478115

+0

Tôi đã đi đến Global.asax, và tìm thấy mã mà bạn todl tôi .... những gì tôi nên thay đổi ?? tên của bộ điều khiển của tôi là: homController.cs – user2478115

+1

Nếu tên của bạn điều khiển là homController, bạn phải thay đổi giá trị của bộ điều khiển mặc định thành 'hom'. Tôi đã cập nhật câu trả lời của mình –

2

Kiểm tra các mục nhập định tuyến của bạn trong Application_Start trong global.asax vì bạn đang sử dụng MVC 3. như "Joffrey Kern" được đề xuất, bạn cần phải định tuyến các tuyến đường.

cũng đảm bảo bộ điều khiển của bạn được đặt tên là "HomeController" và bạn có phương thức công khai được gọi là "Chỉ mục" trả về đối tượng ActionResult.

2

Trong ASP .NET MVC 3, các tuyến đường của bạn được xác định trong global.asax

Bạn có thể thấy rằng trong thư mục gốc của trang web.

Theo mặc định nó trông như thế này:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 
} 

Điều này có nghĩa khi bạn gọi gốc trang web không có tham số, nó sử dụng các giá trị mặc định - trong trường hợp này home/index.

Vì vậy, bạn cần phải chắc chắn rằng bạn:

  • có một bộ điều khiển gọi là home
  • một Action gọi index mà trả về một ActionResult

Hoặc bạn có thể cập nhật các giá trị mặc định trong các tuyến đường , mặc dù nếu bạn chỉ mới bắt đầu tôi sẽ không khuyên bạn nên điều này.

-1

Đây là Ravinder Akula

Hãy tìm câu trả lời này

  • Nhấp chuột phải vào dự án MVC của bạn

  • Chọn "Properties"

  • Chọn "Web" tab

  • Chọn "Trang cụ thể"

  • Giả sử bạn có bộ điều khiển gọi là HomeController và phương thức được gọi là Chỉ mục, nhập "home/index" thay vì home/index. cshtml vào hộp văn bản tương ứng với nút radio "Trang cụ thể".

0

Nó không phải là tuyến đường của bạn ... Nó có thể là cấu hình bị lỗi trong web cấu hình

0

Nếu bạn nhận được lỗi này, tôi đánh giá cao đề nghị bạn thay đổi tên lớp công cộng của bạn. Đặt tên mới là "HomeController":

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MyFirstMVC.Controllers 
{ 
    public class HomeController : Controller 
    { 

     // GET: /First/ 

     public string Index() 
     { 
      return "Jay Swaminarayan"; // this string will be display at your run time!!! 
     } 

    } 
} 
Các vấn đề liên quan