আমি বিশেষত এসপ নেটওয়্যার এমভিসি তে পৃষ্ঠাগুলি প্রয়োগ বাস্তবায়ন করেছি এবং আমি সত্যিই অনুভব করেছি যে বাস্তবায়নে কম দক্ষ কিছু আছে।
সমস্ত বাস্তবায়নের মধ্যে প্রথমে নীচের মতো পৃষ্ঠা পৃষ্ঠার মান ব্যবহার করুন।
public ActionResult MostPopulars(int pageIndex,int pageSize)
{
}
আমি যে জিনিসটি ভুল অনুভব করছি তা হ'ল পেজ ইনডেক্স এবং পেজসাইজ সম্পূর্ণরূপে প্যাজিনেশন ক্লাসের সদস্য হওয়া উচিত অন্যথায় এই উপায়টি এত কার্যকরভাবে দেখায়। এছাড়াও এটি প্রয়োগের স্তরগুলিতে অপ্রয়োজনীয় পরামিতি পাসকে সহজ করে তোলে।
দ্বিতীয় জিনিসটি তারা ইন্টারফেসের নীচে ব্যবহার করে।
public interface IPagedList<T> : IList<T>
{
int PageCount { get; }
int TotalItemCount { get; }
int PageIndex { get; }
int PageNumber { get; }
int PageSize { get; }
bool HasPreviousPage { get; }
bool HasNextPage { get; }
bool IsFirstPage { get; }
bool IsLastPage { get; }
}
যদি আমি আমার পৃষ্ঠাগুলিটিকে বিভিন্ন ক্রিয়ায় রাউটিং করতে চাই তবে আমাকে এটিতে এনপ্যাপুলেট অ্যাকশন নাম বা এমনকি নিয়ামকের নামের জন্য নতুন ভিউ মডেল তৈরি করতে হবে। আর একটি সমাধান হতে পারে যে এই ইন্টারফেস মডেলটি দেখার জন্য প্রেরণ করার পরে প্যাসার পদ্ধতিতে কঠোরভাবে কোডারযুক্ত অ্যাকশন এবং নিয়ামককে প্যারামিটার হিসাবে নির্দিষ্ট করা উচিত তবে আমি আমার দর্শনটির সম্পূর্ণ পুনরায় ব্যবহারযোগ্যতা হারাচ্ছি কারণ এটি কেবলমাত্র একটি ক্রিয়ায় নির্ভর করে।
আরেকটি বিষয় হ'ল তারা নীচের কোডগুলিকে দেখুন
Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount)
যদি মডেলটি আইপেজডলিস্ট হয় তবে কেন তারা ওভারলোড পদ্ধতিটি সরবরাহ করে না @Html.Pager(Model)
বা এটি আরও ভাল @Html.Pager()
। আপনি জানেন যে আমরা এইভাবে মডেল টাইপ জানি। আমি ভুল করার আগে কারণ আমি মডেল.পেজনম্বরের পরিবর্তে Model.PageIndex ব্যবহার করছিলাম।
আর একটি বড় সমস্যা হ'ল তারা দৃQu়ভাবে আইকিউয়েরেবল ইন্টারফেসের উপর নির্ভর করে। তারা কীভাবে জানবে যে আমি আমার ডেটা লেয়ারে আইকোয়ারিযোগ্য ব্যবহার করি? আমি প্রত্যাশা করব যে তারা কেবল সংগ্রহগুলি নিয়ে কাজ করেন যা পৃষ্ঠাগুলি প্রয়োগের অধ্যবসায়কে অজানা রাখে।
তাদের পৃষ্ঠাগুলি বাস্তবায়ন সম্পর্কে আমার উন্নতি ধারণাগুলি সম্পর্কে কী ভুল? এইভাবে তাদের পৃষ্ঠাগুলি বাস্তবায়ন না করার কারণ কী?