2012-11-07 32 views
5

Tôi đang cố thêm một danh sách thả xuống vào kiểu xem dao cạo mạnh mẽ. ASP.Net MVC 4.0, Razor View động cơ phiên bản 2.0.0.0ASP.NET MVC 4 Xem dao cạo không nhận dạng Dropdownlistfor HTML Helper

@using System; 
@model SampleApp.Models.ServiceRequestModel 

@{ 
    ViewBag.Title = "ServiceRequest"; 
} 

@Html.DropDownListFor(m=>m.CategoryID, Model.Categories) 

và Model là như sau:

public class ServiceRequestModel 
{ 
    public int ID { get; set; } 
    public int CategoryID { get; set; } 

    public SelectList Category { get; set; } 
} 

nó luôn luôn hiển thị một lỗi trong IntelliSense trong tập tin CSHTML như:

System.Web.WebPages.Html.HtmlHelper 'không chứa định nghĩa cho' DropDownListFor 'và không có phương pháp mở rộng' DropDownListFor 'chấp nhận đối số đầu tiên của loại' System.Web.WebPages.Html.HtmlHelper 'có thể được tìm thấy (bạn đang thiếu di chuyển rective hoặc tham khảo một hội)

và cũng là cho lỗi cho:

Lỗi 3 Tên 'mô hình' không tồn tại trong bối cảnh hiện nay

Tôi đã kiểm tra web.config trong Xem thư mục:

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

+0

Bạn có tìm thấy giải pháp nào cho vấn đề này chưa? – Tariqulazam

+0

Có điều này được giải quyết. Dòng máy chủ lưu trữ trong cấu hình trên chỉ đến phiên bản sai, phải là 3.0.0.0 như sau:

+1

Bạn có nhớ cung cấp câu trả lời này làm câu trả lời không? Nó sẽ giúp người dùng với các vấn đề tương tự. – Tariqulazam

Trả lời

1

Dòng dưới đây của mã cấu hình phải được thay đổi để 4.0.0.0

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

đổi thành

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

Tôi đã dành hơn một ngày về lỗi này và nó đã kết thúc lên được một dữ liệu gõ xung đột với nguồn dữ liệu VM cho danh sách thả xuống (nghĩa là nó không phải là danh sách loại IEnumerable). Đối với một số lý do VS2012 nghĩ rằng lỗi là với không gian tên mặc dù nó xuất hiện trong Intellipath.

0

Tôi gặp sự cố chính xác này (chỉ với html.displayFor).

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 Web.config View của thư mục.

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

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