আপনি ফোল্ডারের _ViewStart.cshtmlভিতরে এমন একটি ফাইল রাখতে পারেন /Views/Publicযা ফোল্ডারে ডিফল্টটিকে ওভাররাইড করে /Viewsএবং পছন্দসই বিন্যাসটি নির্দিষ্ট করতে পারে:
@{
Layout = "~/Views/Shared/_PublicLayout.cshtml";
}
সাদৃশ্য দ্বারা আপনি ফোল্ডারের _ViewStart.cshtmlভিতরে অন্য ফাইলটি এতে রাখতে পারেন /Views/Staff:
@{
Layout = "~/Views/Shared/_StaffLayout.cshtml";
}
আপনি নিয়ামক ক্রিয়াকলাপের মধ্যে কোনও ভিউ ফেরত দেওয়ার সময় কোন লেআউটটি ব্যবহার করা উচিত তাও নির্দিষ্ট করতে পারেন তবে এটি প্রতি ক্রিয়াকলাপ:
return View("Index", "~/Views/Shared/_StaffLayout.cshtml", someViewModel);
তবুও আরেকটি সম্ভাবনা হ'ল একটি কাস্টম অ্যাকশন ফিল্টার যা লেআউটটিকে ওভাররাইড করে। এটি অর্জনের জন্য আপনি অনেকগুলি সম্ভাবনা দেখতে পাচ্ছেন। আপনার দৃশ্যে কোনটি সবচেয়ে উপযুক্ত ফিট করে তা বেছে নেওয়া আপনার।
হালনাগাদ:
মতামত বিভাগে অনুরোধ হিসাবে এখানে একটি অ্যাকশন ফিল্টার একটি উদাহরণ যা একটি মাস্টার পৃষ্ঠা চয়ন করবে:
public class LayoutInjecterAttribute : ActionFilterAttribute
{
private readonly string _masterName;
public LayoutInjecterAttribute(string masterName)
{
_masterName = masterName;
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var result = filterContext.Result as ViewResult;
if (result != null)
{
result.MasterName = _masterName;
}
}
}
এবং তারপরে আপনি চান লেআউটটি নির্দিষ্ট করে এই কাস্টম বৈশিষ্ট্য সহ একটি নিয়ামক বা একটি ক্রিয়া সাজান:
[LayoutInjecter("_PublicLayout")]
public ActionResult Index()
{
return View();
}
Razorদর্শনের জন্য লেআউটটি সরাতে চান তবে ঠিক সেট করুনLayout = null;