2011-08-19 23 views
10

Tôi đang thêm một tài liệu tham khảo thư viện điều khiển từ Infragistics để sử dụng các điều khiển của chúng trong ASP .NET MVC 3 Razor views. Tôi đã thêm dll như là một tham chiếu đến dự án rồi.Thêm một tham chiếu vào một khung nhìn trong ASP.NET MVC

reference
reference properties

điều khiển của tôi có thể truy cập tốt namespace nếu tôi thêm một using Infragistics.Web.Mvc ở phía trên cùng của tập tin.

Có hai cách để cho biết chế độ xem bao gồm không gian tên. Đầu tiên là đặt @using Infragistics.Web.Mvc ở đầu chế độ xem của bạn. Tuy nhiên nếu tôi cố gắng đó, tôi nhận được lỗi sau:

The type or namespace name 'Infragistics' could not be found (are you missing a using directive or an assembly reference?)

Thứ hai là để thêm một cuộc gọi đến không gian tên trong các trang một phần của view Web.config như thế này:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ABCABCABCABCABC" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     Other namespaces... 
     <add namespace="Infragistics.Web.Mvc"/> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 

tuy nhiên điều này cũng không hiệu quả.

Cách duy nhất tôi có thể làm cho nó hoạt động là bằng cách thêm dòng sau vào file Web.config root:

<system.web> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     ... 
     <add assembly="Infragistics.Web.Mvc, Version=3.11.1.2010, Culture=neutral, PublicKeyToken=blahblahblah" /> 
     </assemblies> 
    </compilation> 

On some further investigation regarding Web.config, tôi thấy rằng bằng cách bao gồm dòng đó nó nói với trình biên dịch để sử dụng tài nguyên khi biên dịch tài nguyên ASP .NET. Tôi đã phải sử dụng SN.exe để tìm PublicKeyToken.

Tôi đang làm gì sai?

+0

Bạn có thêm một tài liệu tham khảo trong dự án của bạn trong Visual Studio? – jzm

+0

Vâng, đó là những gì tôi có nghĩa là bởi dòng "Tôi đã thêm dll như là một tham chiếu đến dự án đã". – link664

Trả lời

21

Tôi không chắc chắn như thế nào cài đặt Infragistics làm việc hoặc làm thế nào bạn đang chạy trang web của bạn, nhưng bạn có thể cần phải nói cho Visual Studio để sao chép các dll vào xây dựng vì vậy nó bao gồm các trang web dự án. Cần kiểm tra trước khi khám phá quá nhiều tùy chọn khác.

Dưới đây là một ví dụ

enter image description here

+1

Đó là nó! Đặt Copy Local thành true và loại bỏ các thẻ biên dịch và nó hoạt động. : D – link664

+0

Làm việc cho tôi :-) –

+0

Làm việc cho tôi. Nhưng bạn chỉ nhận được một danh sách kiểm soát cụ thể có sẵn. Làm thế nào để bạn đi về bằng cách sử dụng điều khiển WebDropDown? – Shumii

1

Thật không may là bạn có điều gì đó kỳ lạ xảy ra ở đây - vì các bước đơn giản thêm ref và bao gồm cả không gian tên là đủ để làm việc này.

Trong các ứng dụng của tôi, tôi không có mục nhập trong phần tử hội đồng trong web.config và chỉ @ sử dụng (ví dụ: lưới MVC @using MvcContrib.UI.Grid) và mọi thứ hoạt động tốt. Tôi biết rằng không giúp gì nhiều trong việc giải quyết vấn đề này nhưng ít nhất bạn biết điều này 'nên' làm việc như thế này.

Bạn cũng không cần dấu chấm phẩy sau khi sử dụng câu lệnh. Khi bạn thêm ref vào assembly đó, bạn đã thêm nó từ đâu?

+1

Tôi đã thêm nó từ một thư mục trong Program Files trên máy cục bộ của tôi. – link664

4

Nhìn vào mã của bạn không có vẻ như bạn đã đặt trong web.config như sau:

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

    ... 

    <add namespace="Infragistics.Web.Mvc" /> 
    </namespaces> 
</pages> 

này nói viewengine của bạn (dao cạo hoặc những người khác) để sử dụng cũng là Infragistics dll như một phần mở rộng.

Nếu bạn đang sử dụng Razor, hãy xem thẻ "namespace" bên trong View \ web.config. Bạn có thể xác định không gian tên ở đó nếu bạn thích.

Hy vọng nó giúp

+0

Nếu tôi sử dụng "@ using Infragistics.Web.Mvc" trong tệp xem, tôi không cần phải bao gồm lệnh gọi không gian tên trong Web.config. Đưa không gian tên vào làm cho nó có sẵn trong tất cả các khung nhìn. Tuy nhiên, không đặt không gian tên vào hoặc "@using" sẽ hoạt động mà không có cuộc gọi lắp ráp trong trường hợp của tôi. – link664

+0

Nếu điều này không hoạt động có thể là một cài đặt bị hỏng của infragistcs? – Iridio

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