2009-05-18 27 views
7

Tôi đang sử dụng phiên bản phát hành của ASP.net MVC và tôi dường như nhận được lỗi này rất nhiềuHtml Helper Extensions không được tìm thấy

'System.Web.Mvc.HtmlHelper' does not contain a definition for 'RenderPartial' and no extension method 'RenderPartial' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found (are you missing a using directive or an assembly reference?) 

mà là rất kỳ lạ kể từ khi tôi có thể duyệt đến System.Web .Mvc.HtmlHelper và tất cả các phương thức mở rộng đều có. Ngay cả người lạ là tôi có thể biên dịch và tất cả các lỗi biến mất, tuy nhiên ngay sau khi tôi bắt đầu chỉnh sửa lại, chúng hiển thị trở lại. Tôi đang bao gồm

<%@ Import Namespace="System.Web.Mvc" %> 
<%@ Import Namespace="System.Web.Mvc.Html" %> 

trong tệp site.master mà tôi đã tìm thấy được đề xuất ở đâu đó nhưng điều đó dường như không hữu ích. Bất kỳ ý tưởng? Intelisense không tìm thấy các phương thức mở rộng.

Trả lời

0

Bạn có sử dụng

<% Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData); %>

hoặc

<%=Html.RenderPartial("~/Views/Project/Projects.ascx", ViewData); %>

?

nó được coi là người đầu tiên, không có "=". Tôi không chắc chắn nếu điều đó sẽ giải quyết nó nhưng tôi nhớ họ đã thay đổi một cái gì đó theo cách đó.

+0

Đây chỉ là site.master tiêu chuẩn đi kèm với dự án mới <% Html.RenderPartial ("LogOnUserControl"); %> – stimms

4

Đầu tiên, kiểm tra xem bạn đang sử dụng phương pháp renderPartial phải:

<% Html.RenderPartial(...); %> 

Thứ hai, kiểm tra web.config của bạn có chứa:

<system.web> 
    <compilation> 
     <assemblies> 
      <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
    </compilation> 
    <pages> 
     <namespaces> 
      <add namespace="System.Web.Mvc.Html" /> 
     </namespaces> 
    </pages> 
</system.web> 
+0

yep, tất cả đều đúng. – stimms

0

Xem thêm: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'RenderPartial' - ASP.Net MVC

Bạn có thể nghĩ rằng đây là ngu ngốc, nhưng tôi chỉ có cùng một vấn đề. Tôi đã có một ứng dụng MVC làm việc, chạy 1.0.0.0 và tất cả của một đột ngột nó ngừng làm việc cho tôi cùng một RenderPartial không phải là trong định nghĩa. Vâng nó chỉ ra rằng trong khi tôi đã đi điên làm sạch web.config của tôi, tôi loại bỏ phần này. Khi tôi thêm lại nó, mọi thứ lại hoạt động trở lại. Tôi chắc rằng điều này có liên quan đến cách tiện ích mở rộng lớp tải trong thời gian chạy.

Dù sao, việc thêm lại này vào web.config của tôi đã hoạt động trên máy của tôi. ;)

<system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
        type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <providerOption name="CompilerVersion" value="v3.5"/> 
      <providerOption name="WarnAsError" value="false"/> 
     </compiler> 

     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" 
        type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <providerOption name="CompilerVersion" value="v3.5"/> 
      <providerOption name="OptionInfer" value="true"/> 
      <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
</system.codedom> 
Các vấn đề liên quan