2012-05-18 29 views
15

tôi không thể sử dụng không gian tên sau PagedList sử dụng dao cạo @model PagedList.IPagedList<PhoneBook.Models.Contact> trong topmost của xem Index.cshtmlKhông thể sử dụng NuGet PagedList ASP.NET MVC# Xem

tôi đã được cài đặt PagedList và tôi đã sử dụng mã dưới đây trong tôi Bộ điều khiển

using PagedList; 

không có lỗi trong trang điều khiển nhưng tại sao tôi không thể sử dụng không gian tên trong Index.cshtml (View)? Xin vui lòng giúp ..

+2

bạn nên đặt tham chiếu assembly vào 'web.config' trong thư mục' Views'. http://stackoverflow.com/a/3876409/365526 ​​ – Buildstarted

+0

Bạn có thể kiểm tra câu trả lời đã đăng của tôi [ở đây] (http://stackoverflow.com/a/35433864/1148691) – mercu

Trả lời

21

BuildStarted giới thiệu hoặc đang tồn tại trên ở việc sử dụng cùng một lúc,

trong điều khiển

using PagedList; 
using PagedList.MVC; 

và sử dụng theo quan điểm

@model PagedList.IPagedList<PhoneBook.Models.Contact> 
@using PagedList; 
@using PagedList.MVC; 

và sử dụng phân trang

@Html.PagedListPager(Model, page => Url.Action("Index", new { page = 
page })) 

Sor ry vì tiếng Anh xấu.

+7

Khi bạn thêm lần đầu tiên những lần sử dụng này, có thể có lỗi màu đỏ gạch chân và bạn có thể không thể sử dụng trợ giúp html của pagedlist. Để sử dụng, hãy đóng chế độ xem và mở lại. –

+0

Tôi có nên cho họ không? Bởi vì bây giờ tôi có thể thấy phân trang nhưng tôi không thể nhìn thấy các hồ sơ. –

+0

Tôi đã phải xây dựng lại trước khi xem sẽ thừa nhận các tài liệu tham khảo – JsonStatham

5

Tôi chỉ tìm thấy câu hỏi này bởi vì tôi đã gặp vấn đề tương tự. Tôi đã đọc qua nhiều hướng dẫn cho thấy việc sử dụng đối tượng PagedList này, nhưng không ai trong số họ nói bất cứ điều gì về việc thêm bất cứ thứ gì vào tệp web.config. Đây là những gì tôi đã làm để thực hiện công việc này. Tôi đã sử dụng một số thông tin từ nhận xét từ @BuildStarted. Tôi đang sử dụng VS2010.

Thêm phần này vào file web.config:

<add assembly="PagedList.Mvc" namespace="PagedList.Mvc" tagPrefix="plmvc"/> 

Vì vậy, nó sẽ giống như thế này (snipped):

<configuration> 
    <system.web> 
    <pages ...> 
     <controls> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
     **<add assembly="PagedList.Mvc" namespace="PagedList.Mvc" tagPrefix="plmvc"/>** 
     </controls> 
    </pages> 
    </system.web> 
</configuration> 
+0

Đẹp. Nhưng cũng nhìn vào câu trả lời này. Nó đã giúp tôi trong VS2012 MVC4.5 - Không có ý tưởng tại sao Nuget đã không tự động thêm nó ... Tôi đã phải làm điều đó bằng tay. – ppumkin

1

Tôi tin rằng tôi có chính xác cùng một vấn đề. Visual Studio nhấn mạnh PagedList màu đỏ và hỏi "bạn đang thiếu một chỉ thị sử dụng hoặc tham chiếu lắp ráp?".

Tất cả những gì tôi phải làm là xây dựng dự án. Sau đó Visual Studio ngừng phàn nàn.

4

Khởi động lại Visual Studio đã sửa nó cho tôi.

1

bạn cần thêm tham chiếu vào thư mục bin/assembly của mình.

+0

Tôi đã có cùng một vấn đề này, tôi đã phải gỡ bỏ cài đặt PagedList.Mvc và cài đặt lại nó bởi vì PagedList là trong tài liệu tham khảo của tôi, nhưng không PagedList.Mvc ... Weird. – JGTaylor

3

tôi đã cùng một vấn đề, khi tôi đang sử dụng @model

PagedList.IPagedList

tôi nhận được lỗi:

PagedList.IPagedList <> không chứa định nghĩa cho ....

Giải pháp:

Trong chế độ xem -> Index.cshtml
Thay thế mô hình.Mô hình bằng mô hình.First().Mã số

  • Chỉ cần thêm First() trước tất cả các thuộc tính.
0

Hãy thử sử dụng không được viết hoa "M vc" trong hàng nhập của bạn và sau đó tạo lại.

@using PagedList.Mvc; 
//@using PagedList.MVC; 
Các vấn đề liên quan