2014-12-01 28 views
5

Tôi đã thêm một trang MVC 3 View of type Razor vào thư mục gốc của dự án ASP.NET MVC 3 hiện có. ViewName: TestView.cshtml Tôi mở tập tin trên và cố gắng thêm các dòng mã sau đây trong giao diện:Lỗi: Tên 'Url' không tồn tại trong ngữ cảnh hiện tại trong asp.net mvc3

<head> 
<link href="@Url.Content("~/Content/Styles/Themes/base/jquery.ui.all.css")" rel="Stylesheet" type="text/css" /> 
    <title></title> 
</head> 

Đối với những dòng trên tôi nhận được một lỗi: Tên 'Url' không tồn tại trong bối cảnh hiện tại. Nhưng khi tôi cố gắng giống nhau trong một chế độ xem trong thư mục Nhà hoặc Tài khoản, nó hoạt động tốt cho tôi. Có ai giúp tôi biết chính xác tôi đang thiếu gì không?

Trả lời

17

Điều này là do bạn đã tạo ra trang xem trong gốc của dự án MVC chứ không phải trong thư mục Views.

Trong Views thư mục có một tập tin web.config trong đó có các phần sau:

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      ... 

Các namespace quy định ở đây được sử dụng để biên dịch các quan điểm đó là lý do tại sao bạn nhận được 'Url không tồn tại' thông báo lỗi .

Bạn có thể thử sao chép nội dung của số web.config vào gốc 'web.config' nhưng tôi không chắc đây là một ý tưởng hay. Và sau khi làm như vậy bạn có thể nhận được một cảnh báo rằng không có nhà cung cấp xây dựng đã đăng ký nhưng theo this link điều này sẽ làm việc hoàn toàn tốt đẹp.

Tôi tin rằng sau đó bạn có thể phải đăng ký RazorViewEngine tùy chỉnh mới để chỉ định đường dẫn mới để tìm kiếm thư mục Views as the default view engine searches for views in the Views`.

Tôi không chắc liệu bạn có cần thực hiện bất kỳ thay đổi nào khác, trừ khi bạn cần có Chế độ xem trong thư mục gốc, tôi khuyên bạn nên di chuyển chế độ xem của mình sang thư mục Views để hy vọng bạn có thể làm việc đó.

+0

Cảm ơn câu trả lời chi tiết :) –

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