2013-03-21 56 views
36

Tôi có máy chủ Windows 2003 R2. Tôi phải chạy một trang web NET MVC3. Tôi đã cài đặt tất cả các Runtimes (1,2 và 4), tôi đã cài đặt tất cả các khung MVCs (3 và 4) nhưng lỗi này không biến mất.Tên 'ViewBag' không tồn tại trong ngữ cảnh hiện tại

Tôi có web.config được cho là nằm trong Chế độ xem. Tôi đã theo dõi tất cả và từng giải pháp cho vấn đề này trong và ngoài stackoverflow. Tôi cũng đã triển khai trong thư mục bin của tôi tất cả các dll bằng cách sử dụng Add Deployable Dependencies (nhấn chuột phải vào dự án mvc).

Tại thời điểm này tôi không biết phải làm gì khác. Đã hết các ý tưởng hoặc giải pháp trực tuyến.

Tôi đã gỡ cài đặt và cài đặt lại tất cả các thời gian chạy, khung công tác, v.v. Trong máy tính cục bộ của tôi nó chạy tốt (Windows 7) nhưng khi tôi triển khai, tôi nhận được lỗi sau.

Compiler Error Message: CS0103: The name 'ViewBag' does not exist in the current context

Source Error:

Line 1: @{

Line 2: ViewBag.Title = "Home Page";

Line 3: }

Line 4: <h2>@ViewBag.Message</h2>

Source File: d:\FamilyDermMVC\Views\Home\Index.cshtml Line: 2

+0

Sẽ rất hữu ích nếu bạn bao gồm web.config và chế độ xem \ web.config (xóa mọi dữ liệu nhạy cảm). –

+0

Tôi đã không hiểu tình hình thực tế nhưng trong trường hợp của tôi, tôi đã đi vào Properties chọn một khung mục tiêu trước đó (từ 4.6 đến 4.5.2, biên dịch lại và tất cả biến mất. Sau đó tôi quay trở lại 4.6 làm điều tương tự. –

Trả lời

1

Ok. Tôi sửa nó rồi. Tôi không biết chính xác những gì cố định nó nhưng tôi đoán đây cả "9 dặm" ​​sửa chữa nó.

Tôi đã xóa (Xóa chương trình) tất cả các tiện ích mở rộng, công cụ và bất cứ điều gì bạn tìm thấy ở đó.

Sau đó được cài đặt lại, mà không xóa, thời gian chạy .net. 2 và 4.

Sau đó cài đặt lại mvc3 và mvc4. Tôi đã đi đến asp.net cho các phiên bản mới nhất.

Sau đó, tôi đã làm điều tương tự trong máy tính xách tay của mình.

LƯU Ý: Bạn sẽ cần Power Shell 2.0 để cài đặt MVC4 trong máy chủ Windows2003. Bạn cần tìm bản tải xuống cụ thể cho máy chủ đó.

Khi tôi đã làm điều đó, hãy tái sử dụng hồ bơi ứng dụng và máy chủ khởi động lại.

Trang BANG ... được tải.

Tôi hy vọng điều này sẽ giúp những người khác trong tương lai.

Cảm ơn bạn đã trả lời câu trả lời của bạn.

PS: Cảm giác của tôi là tôi không có cùng phiên bản (hoặc bản phát hành) của mvc3 (hoặc mvc4) trong máy tính xách tay và máy chủ của mình tương ứng.

+5

[Đánh dấu câu trả lời của bạn là được chấp nhận] (http://meta.stackexchange.com/a/5235) –

+0

Bạn không thấy rằng tôi đã giải thích toàn bộ quá trình ? –

69

Âm thanh như bạn đang thiếu những điều sau đây trong Web.Configtrong thư mục quan điểm:

/Views/Web.Config

<?xml version="1.0"?> 

<configuration> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

     <pages pageBaseType="System.Web.Mvc.WebViewPage"> // <-- this line and contents are important 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
     </namespaces> 
     </pages> 

    </system.web.webPages.razor> 

xem thường xuất phát từ System.Web.Mvc.WebViewPage mà được cấu hình trong web.config. Nếu bạn đang không triển khai các DLL với các ứng dụng, các lớp cơ sở là trong DLL sau được cài đặt trong:

Assembly System.Web.Mvc.dll, v4.0.30319

c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll

Cập nhật 1

Nếu bạn đang nâng cấp từ MVC X để MVC Y và điều này đòi hỏi phải thay đổi mục tiêu của bạn .Net Framework (nói 4.5 đến 4.6) rằng nếu bạn có tài liệu tham khảo cũ (điểm đến MVC 5 thay vì 6) mà rõ ràng là các tập tin cũ không thể được sử dụng kết hợp với các tập tin mới hơn (ví dụ như MVC 5 DLLs không thể được sử dụng với System.Web trong 4.6).

+0

Phần đó Được rồi, hãy đọc câu trả lời của riêng tôi cho điều này, xin cám ơn, –

+2

Đối với tôi ... /Views/Web.config của tôi đã được đánh dấu là "không" thay vì "nội dung" (cho Hành động Xây dựng).Tôi đã thay đổi nó, tái triển khai và nó hoạt động tốt. –

+3

Cập nhật số phiên bản trên ' Jay

4

Tôi thấy điều này đã được đăng một lúc trở lại, nhưng tôi nghĩ rằng tôi sẽ thêm kinh nghiệm của tôi với vấn đề này.

Khi tạo một dự án MVC asp.net mới, tôi đã nhận được lỗi tương tự này ngay lập tức. Tôi chỉ cần nhấp vào BUILD -> Giải pháp sạch, sau đó xây dựng giải pháp và nó cố định vấn đề cho tôi. Vẫn không hoàn toàn chắc chắn lý do tại sao các lỗi đến ở nơi đầu tiên mặc dù nó bị lỗi ngay sau khi nó được tạo ra lần đầu tiên.

+0

Đến đây để nói điều này là tốt.Không hoàn toàn chắc chắn những gì đang gây ra điều này xảy ra trong VS của tôi – Johnrad

0

Trong trường hợp của tôi, tôi gặp vấn đề này vì tôi đã cố gắng chạy một dự án MVC 3 vào nền tảng được bật MVC 2.

sau đó tôi cài đặt MVC 3 trên hệ thống của tôi một vấn đề ra đi

5

Tôi đã có cùng một loại sự cố (mã trợ giúp html không được nhận dạng).

Tôi không chắc chắn làm thế nào nó bắt đầu nhưng tôi giải quyết nó bằng cách thay thế như sau:

<appSettings> 
    <add key="webpages:Enabled" value="false" /> 
</appSettings> 

với

<appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
</appSettings> 

trong file quan điểm web.config.

Tìm thấy giải pháp của tôi here

1

Dường như có rất nhiều giải pháp và tỷ lệ thành công của mỗi trộn.

Đối với tôi, thay đổi số phiên bản trên dòng này của Views/web.config tập tin làm việc:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

tôi đã thay đổi 4.0.0.0 để 5.0.0.0, lưu, đóng cửa giải pháp, mở lại, sau đó thì đấy! Các squiggles đỏ gây phiền nhiễu là Gones và IntelliSense trở

1

Resharper có lẽ làm cho nó

Đến Visual Studio/Tools/Options/Resharper Sau đó bấm Suspend Bây giờ/sau đó Tiếp tục Resharper và bạn ngày sẽ không còn màu xám nhưng có lẽ cửa sổ dao cạo của bạn sẽ có nhiều màu xám trong đó!

+0

Làm việc cho tôi, cảm ơn –

0

Đôi khi đóng chế độ xem, Tạo lại, Mở chế độ xem sẽ giúp.

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