2011-08-14 58 views
17

Vấn đề của tôi rất giống với vấn đề này, ngoại trừ trường hợp của tôi nằm trong khu vực phụ (nhấp chuột phải, Tạo khu vực)Tên 'ViewBag' không tồn tại trong ngữ cảnh hiện tại - Khi ở trong "Khu vực"

The name 'ViewBag' does not exist in the current context

Tôi chạy công cụ nâng cấp và nó đã phát hiện ra web.config trong khu vực, nhưng tôi vẫn gặp lỗi. trang bố trí của tôi rất đơn giản:

<!DOCTYPE html> 

<html> 
<head> 
    <title>@ViewBag.Title</title> 
</head> 
<body> 
    <div> 
     @RenderBody() 
    </div> 
</body> 
</html> 

Và trang nội dung của tôi trông như thế này ở gần đầu:

@model IEnumerable<ProjectName.Models.OrderViewModel> 

@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Areas/Admin/_AdminLayoutPage.cshtml"; 
} 

<h2>Index</h2> 
+0

Vì vậy, có thể truy cập ViewData, phải không? –

+0

Bất kỳ tiến bộ nào về điều này? Tôi đang gặp phải vấn đề tương tự. – kmehta

Trả lời

11

Tôi có web.config làm việc trong một khu vực. Xem nếu web.config trong Chế độ xem thư mục của bạn trong khu vực này có là một phần như sau

<configSections> 
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
</sectionGroup> 
</configSections> 

<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"> 
    <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> 
+0

bạn nhận mã thông báo khóa công khai "máy chủ" từ đâu? –

+1

@MichalPaszkiewicz VS đã tạo nó cho tôi. Về PKT, hãy tham khảo http://stackoverflow.com/a/1322775/749973 –

+0

tuyệt vời, cảm ơn :) –

18

Bạn nên lưu ý rằng khi tạo một ứng dụng MVC, bạn sẽ có được hai Web.Config tập tin. Một trong thư mục gốc của dự án và một trong thư mục Views. Tôi đã có cùng một vấn đề và vì một lý do nào đó khi tôi đang làm việc trong dự án của mình, tôi đã vô tình sửa đổi một trong những lần xem. Làm sạch nó (cái dưới thư mục Views) đã sửa lỗi đó. Hy vọng nó giúp.

enter image description here

+1

Cảm ơn @mpora, việc xóa nó đã khắc phục được lỗi. –

+0

Web.config của tôi không được bao gồm dưới dạng tệp giải pháp. Vì vậy, nó đã được chạy tốt trên máy tính của tôi, nhưng không phải trên xuất bản của tôi tạo ra. Bao gồm trong giải pháp cố định, ty. – talles

3

Kiểm tra để đảm bảo rằng các tập tin web.config nằm trong "Views" thư mục của bạn nằm ở ROOT của thư mục đó. Tôi vô tình chuyển nó vào thư mục "Chia sẻ" và xé tóc ra một lúc cho đến khi tôi tìm ra điều này ...

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