ไม่มีชื่อ 'model' ในบริบทปัจจุบันใน MVC3


119

ฉันเพิ่มเพจ cshtml ในโปรเจ็กต์ เมื่อฉันพยายามเพิ่มคำประกาศต่อไปนี้ฉันได้รับข้อผิดพลาด: "ชื่อ 'รุ่น' ไม่มีอยู่ในบริบทปัจจุบัน"

@model xyz.abc.SomeClass

ฉันตรวจสอบการอ้างอิงแล้วทั้งหมดอยู่ในสถานที่ ฉันเพิ่ม web.config ในโฟลเดอร์มุมมอง แต่ไม่สามารถแก้ไขได้

มีอะไรที่ฉันขาดหายไป?


หากคุณกำลังมองหาโซลูชัน MVC4 คำตอบจาก Adam นั้นถูกต้องคุณต้องหาหมายเลขเวอร์ชันที่ถูกต้องจาก web.config หลักของคุณและใช้สิ่งเดียวกันที่นี่ โฟลเดอร์มุมมอง MVC4 web.config ไม่มีบรรทัด <host> และคัดลอกจาก root web.config (อาจมีค่าอื่นที่แตกต่างออกไปดังนั้นโปรดตรวจสอบของคุณ) และวางไว้ใน Views จากนั้นเราปิดโปรเจ็กต์และโหลดซ้ำใน Visual Studio และมันก็ทำตามเคล็ดลับ
Farrukh Subhani

คำตอบ:


238

อัปเดต: หากคุณใช้ MVC เวอร์ชันใหม่กว่าจะใช้กระบวนการเดียวกันเพียงตรวจสอบให้แน่ใจว่าใช้หมายเลขเวอร์ชันที่ถูกต้องใน<host>บรรทัดของ web.config

ฉันพบว่าตัวเองประสบกับสิ่งเดียวกับที่คุณทำและหลังจากการค้นคว้าเพิ่มเติมเล็กน้อยฉันก็พบว่าปัญหาคืออะไร!

คุณต้องรวม MVC3 web.config เริ่มต้นสำหรับโฟลเดอร์ Views MVC3 มีสอง: หนึ่งในรูทสำหรับแอปพลิเคชันของคุณและอีกอันสำหรับโฟลเดอร์มุมมอง มีส่วนสำหรับเนมสเปซที่รวมอยู่ ตรวจสอบให้แน่ใจว่าของคุณมีลักษณะดังนี้:

  <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>

ฉันขอแนะนำให้คุณสร้างโปรเจ็กต์ MVC3 ใหม่จากนั้นคัดลอก web.config ที่สร้างขึ้นสำหรับคุณลงในโฟลเดอร์มุมมองของคุณ

สิ่งสำคัญเมื่อคุณทำเสร็จแล้วคุณต้องปิดไฟล์และเปิดขึ้นมาใหม่ Voila! Intellisense!


1
ฉันไม่สามารถทำเครื่องหมายนี้เป็นคำตอบได้ แต่นี่ก็เป็นปัญหาของฉันเช่นกัน ลืมเพิ่มส่วนเหล่านี้ใน web.config
Dave

ใช่ฉันหวังว่าฉันจะทำเครื่องหมายว่าคุณเป็นคำตอบ ฉันติดปัญหานี้มาสักพักแล้ว (ยอมแพ้หลังจากความพยายามครั้งแรกในการแปลงเป็น Razor ล้มเหลว) และนี่คือปัญหามาโดยตลอด ขอบคุณ!
Brian Donahue

3
ไม่ได้ผลสำหรับฉัน หรืออย่างน้อยบางครั้งฉันก็ได้รับ Intellisense และบางครั้งฉันก็ทำไม่ได้แม้ว่าฉันจะมีชุดนี้ทั้งหมดใน web.config ในโฟลเดอร์ Views
Tom Lianza

ขอบคุณมาก! มันทำให้วันของฉันปลอดภัย!
เซอร์เกย์

9
อย่าลืมอัปเดตเป็นเวอร์ชันล่าสุด (สำหรับ MVC 5 ที่นี่) ในMAINไฟล์ web.config ของคุณ<add key="webpages:Version" value="3.0.0.0" />
Simon_Weaver

30

ฉันพบปัญหาเดียวกันนี้เมื่อฉันสร้างพื้นที่ใหม่เพื่อจัดระเบียบหน้าเว็บของฉัน โครงสร้างของฉันดูเหมือน:

WebProject

- [] Areas
    - [] NewArea
        - [] Controllers
        - [] Views
- [] Controllers
- [] Views
    - Web.config
- Web.config

มุมมองที่สร้างขึ้นในโฟลเดอร์ Views ภายใต้ WebProject ทำงานได้ดี แต่มุมมองที่สร้างขึ้นภายใต้ NewArea ทำให้เกิดข้อผิดพลาดต่อไปนี้:

ไม่มีชื่อ 'model' ในบริบทปัจจุบัน

ในการแก้ไขปัญหานี้ฉันได้คัดลอก web.config ในโฟลเดอร์ Views ภายใต้ WebProject ไปยังโฟลเดอร์ Views ใน NewArea ดูด้านล่าง

WebProject

- [] Areas
    - [] NewArea
        - [] Controllers
        - [] Views
            - **Web.config**
- [] Controllers
- [] Views
    - Web.config
- Web.config

ฉันพบสิ่งนี้เพราะฉันสร้างพื้นที่ใหม่นี้ด้วยตนเองโดยใช้ Add -> New Folder เพื่อเพิ่มโฟลเดอร์ ฉันควรคลิกขวาที่โปรเจ็กต์แล้วเลือกเพิ่ม -> พื้นที่ จากนั้น Visual Studio จะดูแลการตั้งค่าพื้นที่ให้ถูกต้อง


2
+1 ... ฉันเพิ่งสังเกตว่าด้วยเหตุผลบางอย่างที่ไม่รวม web.config ฉันดีใจที่พบคำตอบของคุณเพื่อแก้ปัญหาของฉัน
polirrata

2
ฉันรู้ว่านี่เป็นเรื่องเก่า แต่จริงๆแล้วฉันมีปัญหาเดียวกันในวันนี้ดังนั้นฉันจึงอยากขอบคุณสำหรับคำตอบนี้ :)
Ricky Mutschlechner

ฉันมีปัญหาเดียวกันด้วยและวิธีแก้ปัญหาที่คล้ายกัน ของฉันViews/Web.configกำลังอ้างอิงSystem.Web.Mvc.MvcWebRazorHostFactoryเวอร์ชัน 5.0.0.0 และฉันมีพื้นที่ของบุคคลที่สามที่อ้างถึง v4.0 และด้วยมุมมองที่ร่วมมือกัน ฉันตั้งค่าViews/Web.configกลับไปที่ v4.0 และทุกอย่างใช้งานได้
รหัสกับค้อน

เป็นความคิดเห็นของคุณโดยเฉพาะเกี่ยวกับการเขียนทับ web.config ด้วยความคิดเห็นจากโฟลเดอร์ Views ที่ช่วยฉันแก้ไขปัญหานี้ การทำให้เนื้อหาเหมือนกันทุกประการไม่ได้ผลด้วยเหตุผลบ้าๆ AAARRRGGGHHH! ;)
Ryan Vettese

ในกรณีของฉันฉันใช้ robocopy เพื่อซิงโครไนซ์เวอร์ชันท้องถิ่นกับเวอร์ชันเซิร์ฟเวอร์ยกเว้นไฟล์ web.config ทั้งหมด หากไม่มีไฟล์ web.config ในเวอร์ชันเซิร์ฟเวอร์ข้อผิดพลาดนี้จะปรากฏขึ้น
Will Wu

11

หากมุมมองของคุณอยู่ในแอสเซมบลีไลบรารีคลาสซึ่งมีประโยชน์สำหรับการนำมุมมองที่แชร์มาใช้ซ้ำระหว่างโปรเจ็กต์การทำตามที่อดัมแนะนำอาจไม่เพียงพอ ฉันยังคงมีปัญหาแม้จะเป็นเช่นนั้น

ลองสิ่งนี้ใน web.config ของคุณในรูทของโปรเจ็กต์ของคุณ:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.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=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
</configuration>

และสิ่งนี้ใน web.config ในโฟลเดอร์มุมมองของคุณ:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.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=4.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>

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

  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

สิ่งนี้ได้ผลสำหรับฉัน ตอนนี้ฉันมี intellisense และไม่มีข้อผิดพลาดในการรวบรวมเกี่ยวกับมุมมองของฉันในโครงการที่ไม่ใช่ MVC ซึ่งฉันสามารถอ้างอิงได้จากเว็บไซต์ MVC หลายแห่ง


1
นี่คือไฟล์ web.config ในโปรเจ็กต์เว็บของคุณหรือไฟล์ web.config ในไลบรารีคลาสของคุณ
theJerm

7

ฉันพบปัญหานี้เมื่อฉันมีสำเนาของไฟล์มุมมอง (About.cshtml) สำหรับเส้นทาง / about ในไดเรกทอรีรากโดยไม่ได้ตั้งใจ (ไม่ใช่โฟลเดอร์ views) เมื่อฉันย้ายไฟล์ออกจากรูทปัญหาก็หายไป


1
ขอบคุณ! ฉันเพิ่งจะโมโหกับปัญหาเดียวกันและนี่คือคำตอบ ;-)
Rob

เย็น! ฉันจำได้ว่าจะบ้าเช่นกัน :)
James Lawruk

ฉันมีไฟล์. cshtml บางไฟล์ในโฟลเดอร์ในไดเร็กทอรีรากซึ่งทำให้โฟลเดอร์เดียวในมุมมองของฉันล้มเหลว ... ในขณะที่ (จริง) {bashHeadToWall; } ขอบคุณ
matt.j.crawford

7

มีปัญหาที่คล้ายกันในการใช้ VS2012 และ VS2013
การเพิ่มบรรทัดต่อไปนี้ใน <appSettings> ใน web.config หลักใช้งานได้:

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

หากมีสายอยู่แล้ว แต่บอกว่า 2.0.0.0 การเปลี่ยนเป็น 3.0.0.0 ใช้งานได้


นั่นเป็นปัญหาของฉันเช่นกันหลังจากทำการอัปเกรด MVC มันบอกว่า 2.0.0.0 เมื่อเปลี่ยนเป็น 3 มันใช้งานได้
FerX32

6

อัปเดต: 5/5/2015 สำหรับโครงการ MVC 5 ของคุณคุณต้องตั้งค่าเวอร์ชันเป็น 5.0.0.0 ใน /views/web.config ของคุณ

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

1
พบเวอร์ชัน 5.2.0.0 ซึ่งเป็นสาเหตุของปัญหา แต่เปลี่ยนเป็น 5.0.0.0 แก้ไขแล้ว !!! ขอบคุณ
vendettamit

5

ในขณะที่คุณประกาศโมเดลที่ด้านบนของมุมมองโดยใช้โค้ดดังนี้:

@model MyModel

คุณต้องใช้ประโยชน์จากการอ้างอิงของคุณด้านล่างตัวอย่างเช่น:

@Html.Encode(Model.MyDisplayValue)

ฉันเชื่อว่า web.config ที่หายไปในโฟลเดอร์ Views น่าจะเป็นสาเหตุหลักของสิ่งนี้ แต่หากได้รับการแก้ไขแล้วและปัญหายังคงมีอยู่ให้ตรวจสอบว่าคุณกำลังใช้Modelไม่ใช่Modelเพื่ออ้างถึงในแหล่งที่มา


1
วิธีนี้จะแก้ไขข้อผิดพลาดเมื่อปัญหาคือคุณพยายามอ้างอิงโมเดลของคุณในโค้ดของคุณเองในมุมมองเช่นเมื่อคุณสร้างตัวช่วยของคุณเองที่ไม่ต้องใช้นิพจน์แลมบ์ดาเป็นต้น
JohnC

3

ฉันพบปัญหานี้เช่นกัน สถานการณ์ของฉันแตกต่างกันเล็กน้อย

  1. โฟลเดอร์มุมมองหนึ่งของฉันถูกย้ายไปยังไดเรกทอรีรากของโปรเจ็กต์โดยไม่ได้ตั้งใจ สิ่งนี้นำไปสู่การproject_root/SignUp/ViewNameจับคู่เส้นทาง ก่อนหน้าproject_root/Views/SignUp/ViewNameนี้ สิ่งนี้ทำให้เกิด@modelข้อผิดพลาด

  2. หลังจากย้ายมุมมองกลับไปยังตำแหน่งที่เหมาะสมไดเร็กทอรีจะถูกสร้างขึ้นใหม่ในรูทโปรเจ็กต์ คราวนี้ว่างครับ /SignUp/ViewNameใช้งานได้ แต่/SignUp/เกิด403 - Forbidden: Access is denied.ข้อผิดพลาด ทั้งโฟลเดอร์จะต้องออกจากรากโครงการ

ฉันหวังว่านี่จะช่วยใครบางคนได้ ฉันใช้เวลาหลายชั่วโมงเชื่อว่าปัญหาเกิดจากการอัปเกรดล่าสุดของเราจาก MVC 3 เป็น MVC 4 หมายเหตุ: ปัญหาการอัปเกรดควรเกิดขึ้นระหว่าง MVC 2 และ MVC 3 เท่านั้นหากคุณพบปัญหานี้ในเวอร์ชันที่ใหม่กว่าอาจไม่ได้เกิดจาก อัพเกรด


2

ฉันใช้เวลานานในการแก้ปัญหานี้ แต่ในที่สุดฉันก็หวังว่าฉันจะแก้ไขได้ใน MVC ซึ่งก็คล้าย ๆ กัน:

ฉันติดตั้ง ASP.NET 4.5 ใหม่แล้ว ( http://www.asp.net/downloads )

ฉันได้ทำตามบทช่วยสอนการอัพเกรดบนhttp://www.asp.net/whitepapers/mvc4-release-notes

แต่ย่อหน้าที่กล่าวถึงนี้ผิดสำหรับฉัน

System.Web.Mvc, Version=4.0.0.0
System.Web.WebPages, Version=2.0.0.0
System.Web.Helpers, Version=2.0.0.0
System.Web.WebPages.Razor, Version=2.0.0.0

เนื่องจากฉันมี Razor ในSystem.Web.Razorดังนั้นฉันจึงเปลี่ยนเนมสเปซมีดโกนเป็น System.Web.Razor

เพิ่มสิ่งนี้ใน web.config ของคุณ

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

ฉันได้เพิ่มการอ้างอิงแอสเซมบลีไปยังแอสเซมบลีทั้งหมดข้างต้น

ค้นหาองค์ประกอบ ProjectTypeGuids และแทนที่ {E53F8FEA-EAE0-44A6-8774-FFD645390401} ด้วย {E3E379DF-F4C6-4180-9B81-6769533ABE47}

นั้นคือทั้งหมด.


1
appsettings เพิ่มเติมจาก webconfig แก้ไขให้ฉัน แม้ว่าฉันคิดว่า<add key="webpages:Version" value="2.0.0.0" />เป็นปัจจัยผลักดัน แต่การตั้งค่าอื่น ๆ ก็ไม่จำเป็น
รองเท้า

1
สำหรับ MVC 5 สิ่งนี้จำเป็นต้องเป็น3.0.0.0แต่ใช่สิ่งนี้สำคัญมาก!
Simon_Weaver

2

มันเป็นความผิดพลาดที่น่ากลัว แต่:

ให้แน่ใจว่าคุณมีWeb.configไฟล์ในของคุณดูที่ระยะไกล บางทีคุณอาจจะข้ามไปอัปโหลดโดยใช้ฟิลเตอร์ของโปรแกรม Ftp


2

ฉันไม่มี web.config ภายใต้พื้นที่ / MyArea / Views / web.config เมื่อเพิ่มแล้วก็ใช้งานได้ดี นี่คือ MVC 5 และ. NET4.5


ของฉันหายไปเช่นกันด้วยความช่วยเหลือจากไซต์นี้ฉันทำให้มันใช้งานได้อีกครั้ง forums.asp.net/t/…
Perposterer

0

นอกจากนี้ยังมีอีกสาเหตุหนึ่ง ในกรณีของฉันฉันได้คัดลอกไฟล์ index.cshtml ไปยังโฟลเดอร์รูทของเว็บ (นอกโฟลเดอร์ Views) เป็นการสำรองข้อมูลจากเซิร์ฟเวอร์ระยะไกล

ดังนั้นฉันยังคงเปลี่ยน /views/web.config ของฉันเปลี่ยน /views/home/index.cshtml ของฉันเรื่อย ๆ และข้อผิดพลาดยังคงเกิดขึ้น ... จนกระทั่งพบ /index.cshtml นอกโฟลเดอร์มุมมองลบมันและแน่ใจว่ามัน ทุกอย่างกลับสู่สภาวะปกติ!


0

ฉันพบปัญหาเดียวกันนี้ แต่ในกรณีของฉันสิ่งเดียวที่เปลี่ยนไปคือฉันได้ถอนการติดตั้ง Visual Studio 2012 และติดตั้ง Visual Studio 2013 ฉันเปิดวิธีแก้ปัญหาของเรา แต่ฉันยังคงได้รับThe name 'model' does not exist in current contextข้อผิดพลาดเดียวกันในทุกมุมมองของ Razor

เพื่อนร่วมงานของฉันแนะนำให้ตรวจสอบการอัปเดตสำหรับ VS2013 หลังจากที่ฉันติดตั้งVS2013 Update 1ฉันก็หยุดรับข้อผิดพลาดนี้


1
ฉันได้รับข้อผิดพลาดนี้ด้วย VS2013 ปรับปรุง2 ด้วยการอัปเดต 1 มันใช้งานได้ดี ยังไม่สามารถหาวิธีแก้ไขได้ ฉันพยายามถอนการติดตั้งอัปเดต 2 แต่นั่นส่งผลให้ VS หยุดทำงานหลังจากเปิดไฟล์ cshtml
iheartcsharp

ฉันมีปัญหาเดียวกันกับ VS2013 Update 2
EricP

0

ตรวจสอบไฟล์กำหนดค่าของคุณในไดเรกทอรีมุมมอง ในการเพิ่มคีย์สำหรับ MVC 4/5


0

การติดตั้ง nuget ใหม่ช่วยแก้ปัญหาให้ฉันได้

PM> ติดตั้งแพ็คเกจ Microsoft.AspNet.Razor -Version 3.2.3


0

สำหรับฉันนี่คือปัญหา บล็อกทั้งหมดนี้หายไปจากส่วนนี้

  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  </assemblies>

0

ฉันมีปัญหาเดียวกันหลังจากอัปเดตแพ็คเกจ ฉันทำทุกอย่างที่คุณได้เขียนไว้ข้างต้นในหัวข้อนี้แล้ว แต่สีแดงพื้นฐานของคีย์เวิร์ดรุ่นไม่ได้หายไป ต่อมาพบวิธีแก้ปัญหา: เพิ่งลบโฟลเดอร์ 'แพ็คเกจ'ออกจาก dir ของโครงการของฉันและสร้างใหม่ในระหว่างนี้ NuGet ได้รับอนุญาตให้กู้คืนแพ็คเกจที่หายไป รีเฟรชแล้วเสร็จ!



0

ฉันประสบปัญหาเดียวกันจากนั้นก็หาทางแก้ไข วิธีแก้ปัญหาคือ:

  1. ปิด Visual Studio
  2. ลบไฟล์ SUO
  3. รีสตาร์ท Visual Studio

.suoไฟล์เป็นไฟล์ที่ซ่อนอยู่ในโฟลเดอร์เดียวกันที่.svnแฟ้มโซลูชันที่มีอยู่ หวังว่ามันจะได้ผล!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.