এমপিসিতে এমপিসিতে @ রেন্ডারসেকশনটি কী


170

@ রেন্ডারসেকশন এর উদ্দেশ্য কী এবং এটি কীভাবে কাজ করে? আমি বুঝতে পেরেছি বান্ডিলগুলি কী করে, তবে এটি কী করে তা এখনও নির্ধারণ করতে পারি এবং এটি সম্ভবত গুরুত্বপূর্ণ।

@RenderSection("scripts", required: false)

কীভাবে এটি ব্যবহার করবেন তার একটি ছোট্ট উদাহরণ?

উত্তর:


287

আপনার যদি এই জাতীয় লেআউট.সি.এস.টি.এমএল ভিউ থাকে

<html>
    <body>
        @RenderBody()
        @RenderSection("scripts", required: false)
    </body>
</html>

তারপরে আপনার মতো একটি সূচি.কমটিএমএল সামগ্রী থাকতে পারে

@section scripts {
     <script type="text/javascript">alert('hello');</script>
}

প্রয়োজনীয় ইঙ্গিত থাকুক বা না থাকুক বিন্যাস পৃষ্ঠা ব্যবহার দৃশ্য একটি স্ক্রিপ্ট অধ্যায় থাকতে হবে


20

যদি

(1) আপনার কাছে এইরকম একটি _ লেআউট.সি.এস.টি.এম.এল ভিউ আছে

<html>
    <body>
        @RenderBody()

    </body>
    <script type="text/javascript" src="~/lib/layout.js"></script>
    @RenderSection("scripts", required: false)
</html>

(২) আপনার পরিচিতি সিটিএসটিএমএল রয়েছে

@section Scripts{
    <script type="text/javascript" src="~/lib/contacts.js"></script>

}
<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <h2>    Contacts</h2>
    </div>
</div>

(3) আপনার সম্পর্কে ..cshtml আছে

<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <h2>    Contacts</h2>
    </div>
</div>

আপনার লেআউট পৃষ্ঠায়, যদি প্রয়োজন হয় "" রেন্ডারসেকশন ("স্ক্রিপ্টস", প্রয়োজনীয়: মিথ্যা)) "এ সেট করা থাকে, যখন পৃষ্ঠা রেন্ডার এবং ব্যবহারকারী প্রায় পৃষ্ঠায় থাকে, পরিচিতি.জেগুলি রেন্ডার করে না।

    <html>
        <body><div>About<div>             
        </body>
        <script type="text/javascript" src="~/lib/layout.js"></script>
    </html>

যদি প্রয়োজন হয় "@RenderSication (" স্ক্রিপ্টস ", প্রয়োজনীয়: সত্য)" "তে সেট করা থাকে, যখন পৃষ্ঠাটি রেন্ডার এবং ব্যবহারকারী সম্পর্কে পৃষ্ঠায় থাকে, পরিচিতি.জেএসটি এখনও রেন্ডার হয়ে যায়।

<html>
    <body><div>About<div>             
    </body>
    <script type="text/javascript" src="~/lib/layout.js"></script>
    <script type="text/javascript" src="~/lib/contacts.js"></script>
</html>

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


16
এটি সঠিক নয়। আপনার নিজের উত্তরটি নিজেই চেষ্টা করা উচিত এবং আপনি লক্ষ্য করবেন যে Section not defined: "scripts".প্রয়োজনীয় পতাকাটি সেট করার সময় আপনি আপনার প্রায় পৃষ্ঠাটি রেন্ডার করার সময় পেয়ে যাবেন true
সিজিজেবলস

শুধু একটি ব্যাখ্যা। এটি "স্ক্রিপ্ট" এর পরিবর্তে "স্ক্রিপ্টগুলি" হওয়া উচিত নয়?
শ্রীধরন

2

এখানে থেকে রেন্ডারসেকশন সংজ্ঞা MSDN

বিন্যাস পৃষ্ঠাগুলিতে, একটি নামকৃত বিভাগের সামগ্রী উপস্থাপন করে। দুটিই MSDN

_Layout.cs পৃষ্ঠাতে

@RenderSection("Bottom",false)

এখানে বুটম বিভাগের বিষয়বস্তু রেন্ডার করুন এবং falseবিভাগটির প্রয়োজন আছে কিনা তা নির্দিষ্ট করতে বুলেট সম্পত্তি নির্দিষ্ট করে।

@section Bottom{
       This message form bottom.
}

এর অর্থ আপনি যদি সমস্ত পৃষ্ঠায় নীচের অংশটি চান, তবে আপনাকে অবশ্যই রেন্ডারসেকশন পদ্ধতিতে দ্বিতীয় প্যারামিটার হিসাবে মিথ্যা ব্যবহার করতে হবে।


2

ধরুন আমার কাছে getAllEmployees.cshtml থাকলে

<h2>GetAllEmployees</h2>

<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table">
    <thead>
         // do something ...
    </thead>
    <tbody>
       // do something ...
    </tbody>
</table>

   //Added my custom scripts in the scripts sections

@section Scripts
    {
    <script src="~/js/customScripts.js"></script>
    }

এবং অন্য স্ক্রিপ্টগুলির সাথে "গেটইম্প্লোয়েডেটেলস সিএসটিএমএল" দেখুন

<h2>GetEmployeeByDetails</h2>

@Model.PageTitle
<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table">
    <thead>
       // do something ... 
    </thead>
    <tbody>
       // do something ...
    </tbody>
</table>

এবং আমার লেআউট পৃষ্ঠা "_layout.cshtml"

@RenderSection("Scripts", required: true)

সুতরাং, যখন আমি getEmployeeDetails.cshtml নেভিগেট করি। আমি ত্রুটি পেয়েছি যে getEmployeeDetails.cshtml তে রেন্ডার করার জন্য কোনও বিভাগের স্ক্রিপ্ট নেই। যদি আমি এ পতাকা পরিবর্তন @RenderSection()থেকে required : trueথেকে `প্রয়োজন: মিথ্যা`। এর অর্থ যদি উপস্থিত থাকে তবে @ সেকশন স্ক্রিপ্টগুলিতে সংজ্ঞায়িত স্ক্রিপ্টগুলি রেন্ডার করা উচিত E তবে কিছুই করবেন না। এবং পরিশোধিত পদ্ধতি _layout.cshtml এ থাকবে

@if (IsSectionDefined("Scripts"))
    {
        @RenderSection("Scripts", required: true)
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.