আপনি ফোল্ডারের _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;