ASP.NET ওয়েব ফর্মের তুলনায় একটি এএসপি.নেট এমভিসি পৃষ্ঠার 'পৃষ্ঠা জীবনচক্র' কী?


158

ASP.NET ওয়েব ফর্মের তুলনায় একটি এএসপি.নেট এমভিসি পৃষ্ঠার 'পৃষ্ঠা জীবনচক্র' কী?

আমি (খুব) সাধারণ সাইটে আমার বিদ্যমান পৃষ্ঠাগুলি সহজেই এএসপি.নেট ওয়েবফোর্মে রূপান্তরিত হতে পারে কিনা তা নির্ধারণ করার জন্য আমি এই 'সাধারণ' প্রশ্নটি আরও ভালভাবে বুঝতে চেষ্টা করছি।

হয় নীচের প্রক্রিয়াটির একটি 'রূপান্তর', অথবা একটি বিকল্প জীবনচক্র হ'ল আমি যা খুঁজছি।

আমি বর্তমানে যা করছি:

(হ্যাঁ আমি জানি যে আমার প্রশ্নের উত্তর দেওয়ার যোগ্য কেউ এরই মধ্যে এই সব জানে - আমি কেবল 'জীবনচক্রের' তুলনা করার চেষ্টা করছি তাই আমি ভেবেছিলাম যে আমরা ইতিমধ্যে যা জানি তা পূরণ করেই শুরু করব))

পৃষ্ঠাটি রেন্ডারিং:

  • আমার একটি মাস্টার পৃষ্ঠা রয়েছে যা আমার বেসিক টেমপ্লেট ধারণ করে
  • আমার কন্টেন্ট পৃষ্ঠাগুলি রয়েছে যা আমাকে যে মাস্টার পৃষ্ঠাতে বিষয়বস্তু রেখেছি সেখান থেকে নাম দেওয়া অঞ্চলগুলি দেয়।
  • প্রতিটি সামগ্রীর পৃষ্ঠার জন্য ইভেন্ট হ্যান্ডলারে আমি ডাটাবেস থেকে ডেটা লোড করি (বেশিরভাগই কেবল পঠনযোগ্য)।
  • আমি এই ডেটাটি এএসপি.নেটকে গ্রিড, ড্রপডাউন বা পুনরাবৃত্তি উপস্থাপনকারী নিয়ন্ত্রণগুলিতে আবদ্ধ করি। এই ডেটা এইচটিএমএল উত্পন্ন উত্স মধ্যে সমস্ত 'জীবন'। এর কিছু ভিউস্টেটে যায় (তবে আমি খুব বেশি intoুকতে চাই না!)
  • আমি পৃষ্ঠাতে চিত্র বা টেক্সটবক্স নিয়ন্ত্রণের মতো নির্দিষ্ট আইটেমগুলিতে বৈশিষ্ট্য বা ডেটা বাঁধাই।
  • পৃষ্ঠাটি পুনরায় ব্যবহারযোগ্য HTML হিসাবে রেন্ডার করা ক্লায়েন্টকে প্রেরণ করা হবে।
  • পৃষ্ঠার ন্যূনতম হিসাবে যা প্রয়োজন তা বাদ দিয়ে আমি ভিউস্টেট ব্যবহার এড়াতে চেষ্টা করি।

ক্লায়েন্ট পক্ষ (ASP.NET AJAX ব্যবহার না করে):

  • পৃষ্ঠায় নিয়ন্ত্রণগুলি খুঁজে পেতে এবং সেগুলিতে ক্রিয়াকলাপ চালানোর জন্য আমি জিকুয়ারি এবং কয়েকটি কদর্য কৌশল ব্যবহার করতে পারি।
  • যদি ব্যবহারকারী ড্রপডাউন থেকে নির্বাচন করে - একটি পোস্টব্যাক উত্পন্ন হয় যা আমার কোডবিহাইন্ডে একটি # # ইভেন্ট ট্রিগার করে। এই ইভেন্টটি ডাটাবেসে যেতে পারে তবে এটি পুরোপুরি সদ্য উত্পন্ন এইচটিএমএল পৃষ্ঠা যা করে তা ক্লায়েন্টের কাছে ফিরে পাঠানো শেষ হয়।
  • আমি পেজ ব্যবহার করতে পারি key সেশনটি মূল মান জোড়গুলি সঞ্চয় করতে আমার পরে পুনরায় ব্যবহার করতে হবে

এমভিসির সাথে কীভাবে এই 'লাইফাইসাইকেল' পরিবর্তন হয়?


2
আমার বুকমার্কগুলি থেকে কিছু উল্লেখ যা একটি এএসপি.নেট এমভিসিতে অনুরোধ পাইপলাইন কীভাবে কাজ করে তা তুলে ধরে। এটি সাধারণত সহায়ক হবে ১. এএসপি.নেট এমভিসি নিজেই বুঝতে ২. এমভিসি দ্বারা প্রদত্ত বিভিন্ন ইনজেকশন পয়েন্টগুলি কী কী তা বোঝার জন্য এবং এটি বুঝতে। https://docs.google.com/open?id=0B0_EIyBZvSQsOTU3N2Q2NDEtMWNjMS00ZTc0LWJmMjUtM2I0M2I5NDY2ZDNl [ সরল-talk.com
আর্টিকেল.এএসপিএক্স.আর্টিকাল


পৃষ্ঠা চক্রটি নিম্নরূপ: স্ট্যাকওভারফ্লো
ইনসান

উত্তর:


39

আপনি উল্লিখিত বুলেট পয়েন্টগুলির প্রত্যেকটিতে আমি মন্তব্য করার চেষ্টা করব:

আপনার মাস্টার পৃষ্ঠাগুলি এখনও এমভিসিতে বিদ্যমান এবং সাইটটিতে একটি সামঞ্জস্যপূর্ণ বিন্যাস সরবরাহ করতে ব্যবহৃত হয়। সেখানে খুব বেশি নতুন নয়।

আপনার সামগ্রীর পৃষ্ঠাগুলি এমভিসি বিশ্বে দেখা যাবে। তারা এখনও আপনার মাস্টার পৃষ্ঠাগুলিতে একই সামগ্রীর ক্ষেত্রগুলি সরবরাহ করে।

ওয়েবফর্মগুলির ইভেন্ট হ্যান্ডলিংটি এমভিসিতে ব্যবহার করা উচিত নয়, পরিবর্তে আপনার কন্ট্রোলার ক্লাস এবং তাদের ক্রিয়াকলাপগুলি আপনার ডেটা "মডেল" এ লোড করা পরিচালনা করবে যা দর্শনে পৌঁছে যায়।

যদিও এমভিসিতে ওয়েবফর্ম স্টাইলের ডেটাবাইন্ডিং সম্ভব, তবে আমি দেখতে পেলাম যে এটি সর্বোত্তম সমাধান নয়। কোনও মডেল শ্রেণিতে আপনার ডেটা স্থাপন করা আরও দৃ your়ভাবে আপনার দৃষ্টিভঙ্গি টাইপ করুন যাতে আপনার সেই মডেলটিতে সরাসরি অ্যাক্সেস থাকে। তারপরে <%= ViewData.Model.SomeProperty %>আপনার ডেটা অ্যাক্সেস করতে এবং এটি পছন্দসই অবস্থানগুলিতে প্রদর্শন করতে সিনট্যাক্সটি ব্যবহার করার বিষয়টি কেবল । ভিউস্টেট হিসাবে, আমার প্রস্তাবটি এটি ভোলাও যে এটি বিদ্যমান।

মনে রাখবেন যে এমভিসি ব্যবহারের অন্যতম সুবিধা হ'ল আপনি ক্লায়েন্টকে যে HTML পাঠিয়েছেন তার উপর আপনার নিয়ন্ত্রণ রয়েছে। সেই শক্তিটি আলিঙ্গন করুন এবং এমন সমাধান সন্ধান করার চেষ্টা করুন যা আপনাকে সেই নিয়ন্ত্রণ বজায় রাখতে দেয়। ওয়েবফর্মটি আপনার কাছ থেকে এইচটিএমএলকে আড়াল করার প্রয়াস নিয়ন্ত্রণ করে এবং আপনার যখন প্রয়োজন হয় তখন এইচটিএমএলকে কাস্টমাইজ করা আরও কঠিন করে তোলে।

আমি জিকিউরি বা অন্য অনুরূপ শক্তিশালী জাভাস্ক্রিপ্ট লাইব্রেরিগুলির মধ্যে একটিতে সুপারিশ করব। তবে এগুলি এইচটিএমএল ডিওএম এ সরাসরি অ্যাক্সেস করতে ব্যবহার করতে শিখুন এবং ওয়েবফর্ম নিয়ন্ত্রণগুলির আইডি ম্যাঙ্গেলিংয়ের সমস্যাগুলি এড়ান।

ক্লায়েন্টের পাশের ড্রপডাউন নির্বাচনের জন্য আপনি jquery ব্যবহার করতে পারেন এবং স্ট্যান্ডার্ড বা এজাক্স শৈলীর অনুরোধগুলি জমা দিতে পারেন। এই অনুরোধটি নতুন পৃষ্ঠাগুলি, পুনর্নির্দেশগুলি, এইচটিএমএল টুকরোগুলি বা জেএসএন ডেটা ফেরত দিতে পারে যা বিদ্যমান পৃষ্ঠা আপডেট করার জন্য ব্যবহার করা যেতে পারে।

প্রয়োজন মতো Asp.net সেশনটি ব্যবহার করা যেতে পারে।


আপনার উত্তরহীন উত্তরের জন্য ধন্যবাদ এটি আসলে JQuery ছিল যা আমাকে এমভিসিতে ফিরে আসতে বাধ্য করেছিল। আমি এটি সংক্ষেপে তাকিয়ে এটিকে বরখাস্ত করব (এখনকার জন্য অন্তত)। জিকুয়েরির সাথে খেলতে এবং ডিওমে জিনিসগুলি সন্ধান করার চেষ্টা করা খুব বেশি ব্যথা পেয়েছিল তাই আমি ভেবেছিলাম
এমভিসিতে

Modelমডেলটি অ্যাক্সেস করার জন্য এমভিসি পৃষ্ঠাগুলির একটি সম্পত্তি রয়েছে, আপনাকে এর মধ্যে দিয়ে যেতে হবে না ViewData
সোশি আশের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.