_ ভিউস্টার্ট.কোশটিএমএল এবং আংশিক রেজার দর্শনগুলি ব্যবহার করার সঠিক উপায়?


156

আমি আমার দর্শনগুলিতে স্বয়ংক্রিয়ভাবে একই রেজার লেআউটটি নির্ধারণ করতে _ ভিউস্টার্ট.কোশটিএমএল ব্যবহার করছি ।

এটি আমার ভিউ ফোল্ডারের মূলের মধ্যে একটি মৃত সহজ ফাইল যা দেখতে দেখতে এটি:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

এটি প্রতিটি একক দৃশ্যে @ লেআউট নির্দেশিকা যুক্ত করার চেয়ে ডিআরওয়াই।

যাইহোক, এটি রেজার আংশিক দর্শনগুলির জন্য একটি সমস্যা তৈরি করেছে , কারণ তারা _ ভিউস্টার্ট.সিএসটিএমএল এর বিষয়বস্তু চালায় এবং তাই ভুলভাবে তাদের একটি লেআউট বরাদ্দ করে, যা তাদেরকে এখন আর আংশিক করে না।

এখানে একটি কল্পিত প্রকল্প রয়েছে, _ ভিউস্টার্ট.একএসটিএমএল ফাইল, ভাগ করা _layout.shtml ফাইল এবং একটি আংশিক দৃশ্য ("আনোনবার সিএসটিএমএল") দেখায়।

প্রকল্প কাঠামোর উদাহরণ

বর্তমানে, আমি যেভাবে এর আশেপাশে যাচ্ছি তা হ'ল প্রতিটি আংশিক দর্শনে নিম্নলিখিত লাইনটি যুক্ত করে:

@{
    Layout = "";
}

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

অন্যান্য বিকল্পগুলি আমি বিবেচনা করেছি তবে এটি আরও খারাপ:

  • সমস্ত আংশিক দর্শন একটি সাধারণ ফোল্ডারে রেখে দেওয়া হচ্ছে, যাতে তারা একটি সাধারণ _ ভিউস্টার্ট.কোশটিএমএল ভাগ করে নিতে পারে। এটি তাদের নিয়ামক হিসাবে একই ফোল্ডারে থাকা মতামতের কনভেনশনটিকে ভেঙে দেয়।
  • আংশিক দর্শন ব্যবহার করা হচ্ছে না।

এটি কি এমন কিছু যা এখনও রেজার ভিউ ইঞ্জিন টিম দ্বারা প্রকাশিত হচ্ছে, বা আমি কোনও মৌলিক ধারণাটি অনুপস্থিত?


3
অফটোপিকের জন্য দুঃখিত, তবে ফাইলের নামের পাশে এই আইকনগুলি কী? :) একধরণের সোর্স-কন্ট্রোল ঠিক?
অ্যালেক্স

6
@জিবিট: ভিজ্যুয়াল এসভিএন
এআরেক্ট করুন

উত্তর:


237

আপনি যদি return PartialView()আপনার নিয়ন্ত্রকদের থেকে (পরিবর্তে return View()) হন, তবে _viewstart.cshtmlমৃত্যুদন্ড কার্যকর করা হবে না।


6
আহা, PartialViewResultক্লাস সম্পর্কে জানতেন না । এটাই আমার দরকার ছিল।
পোর্টম্যান 22

6
একটি ফলো-আপ হিসেবে আমি পেয়েছি আমি প্রয়োজন যে এছাড়াও স্পষ্টভাবে পদক্ষেপ পদ্ধতির রিটার্ন টাইপ সেট PartialViewResultস্বাভাবিক পরিবর্তে ActionResult
Portman

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

@marcind আমি ফিরে প্রকার সেট w3wp.exe উপর একটি স্ট্যাক ওভারফ্লো পেতে ActionResult। রিটার্ন টাইপ হলে ঠিকঠাক কাজ করে PartialViewResult। ভাবেন আমার একটি সংযোগ বাগ ফাইল করা দরকার?
পোর্টম্যান

আমার কাছে যেমন শোনাচ্ছে - আপনি যদি কোনও সংযোগ বাগ জমা দেন তবে তা পুনরায় চিৎকার করবেন it
ডেভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.