একটি রেজার ভিউতে .css ফাইলকে কীভাবে রেফারেন্স করব?


195

আমি কীভাবে _Layout.cshtml ফাইলে .css ফাইলগুলি সেট করতে পারি, তবে প্রতি-ভিউ ভিত্তিতে স্টাইলশিট প্রয়োগ করার কী আছে?

এখানে আমার চিন্তাভাবনাটি হ'ল _ লেআউট.কোশটিএমএলে, আপনার <head>সাথে কাজ করার জন্য ট্যাগ রয়েছে, তবে আপনার অ-বিন্যাস ভিউগুলির মধ্যে এটির মতো নয়। <link>ট্যাগগুলি কোথায় যায়?

উত্তর:


339

সিএসএসের জন্য যা পুরো সাইটের মধ্যে পুনঃব্যবহার করা হয় আমি তাদের <head>বিভাগের বিভাগে এটি সংজ্ঞায়িত করি _Layout:

<head>
    <link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" />
    @RenderSection("Styles", false)
</head>

এবং যদি আমার কিছু নির্দিষ্ট স্টাইলের প্রয়োজন হয় তবে আমি Stylesপ্রতিটি দৃশ্যে বিভাগটি সংজ্ঞায়িত করি :

@section Styles {
    <link href="@Url.Content("~/Styles/view_specific_style.css")" rel="stylesheet" type="text/css" />
}

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


4
তুমি জানো, দ্বিতীয় চিন্তায়, এটি এতটা খারাপ নয়। আমি মনে করি এটি কেবল নতুন এবং আলাদা different
মিঃবোজ্যাংলেস

@ সেকশন স্টাইলস -> বলছেন বিভাগ স্টাইলগুলি সমাধান করতে পারে না, এর অর্থ কী?
সত্যই

2
@ স্যাম, এর অর্থ এটি আপনার লেআউটে সংজ্ঞায়িত কোনও বিভাগ নেই।
দারিন দিমিত্রভ

পছন্দ করুন আমি সিএসএস অগ্রাধিকারগুলির জন্য একটি নির্দিষ্ট অর্ডার রাখতে চাই।
মার্চ

@ মার্ক এটি এমন জায়গায় রেন্ডার হয়েছে যেখানে আপনি কল করেছেন RenderSection(আশ্চর্যজনকভাবে :), শিরোনামের শেষে নয়।
ডেভিড ফেরেঞ্জি রোগোয়ান

22

আমি এর মতো একটি ব্লক যুক্ত করার চেষ্টা করেছি:

@section styles{
    <link rel="Stylesheet" href="@Href("~/Content/MyStyles.css")" />
}

এবং _আউটআর.সি.এইচটিএমএল ফাইলের সাথে সম্পর্কিত ব্লক:

<head>
<title>@ViewBag.Title</title>
@RenderSection("styles", false);
</head>

যা কাজ করে! তবে আমি সাহায্য করতে পারি না তবে আরও ভাল উপায় আছে বলে মনে করি। আপডেট: মধ্যে "মিথ্যা" যোগ করা হয়েছে @RenderSectionবিবৃতিতে তাই আপনার ভিউ না করবে না 'splode যখন আপনি একটি যোগ করার জন্য অবহেলা @sectionনামক head


এর চেয়ে ভাল আর কোনও উপায় নেই, যদিও আমি বিভাগটির নাম দেব "Head"
এসএলএক্স

আপনি ঠিক ঠিক বলেছেন। এটিকে "পেজ স্টাইল" বলার পরামর্শ দেয় এটি কেবলমাত্র সেই উদ্দেশ্যেই।
মিঃবোজঙ্গলস

1
আপনি যদি এটি এটি করেন তবে আপনাকে সমস্ত দর্শনে "মাইস্টাইলস" যুক্ত করতে হবে, আমি ডারিন্স উত্তর নিয়ে যাব।
ফিলিপ একবার্গ

ডান-ণ। এজন্য আমি মিথ্যা যুক্তি যুক্ত করেছি @RenderSection()। ভালো বল ধরা.
মিঃবোজ্যাংলেস

12

ব্যবহার

@Scripts.Render("~/scripts/myScript.js")

অথবা

@Styles.Render("~/styles/myStylesheet.css")

আপনার জন্য কাজ করতে পারে।

https://stackoverflow.com/a/36157950/2924015


4
উত্তর সদৃশ লিঙ্ক পোস্ট করবেন না । পরিবর্তে, অন্যান্য ক্রিয়াগুলি বিবেচনা করুন যা লিঙ্কযুক্ত পোস্টে বর্ণিত, ভবিষ্যতের ব্যবহারকারীদের তাদের প্রয়োজনীয় উত্তর খুঁজতে সহায়তা করতে পারে।
মোগসদাদ

3

লেআউটটি মাস্টার পৃষ্ঠার মতোই কাজ করে। বিন্যাসে যে কোনও সিএসএস রেফারেন্স রয়েছে, যে কোনও শিশু পৃষ্ঠাগুলি থাকবে।

স্কট গু এর একটি দুর্দান্ত ব্যাখ্যা আছে


1
অনেক কৃতজ্ঞ. যাইহোক, আমার প্রশ্নটি হল, আমি কীভাবে "মাস্টার" নয়, একটি একক দৃশ্যে একটি রেফারেন্স সেট করব।
মিঃবোজ্যাংলেস

1

আমি ক্লায়েন্ট নির্ভরতা dll থেকে রেজার এইচটিএমএল সহায়ক ব্যবহার করতে পছন্দ করি

Html.RequireCss("yourfile", 9999); // 9999 is loading priority 

0

আপনি এই কাঠামোটি Layout.cshtml ফাইলটিতে করতে পারেন

<link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" />

1
এটি কীভাবে আমাকে প্রতি ভিউ বাছাই করে স্টাইল শীট প্রয়োগ করতে দেয়?
মিঃবোজঙ্গলস 31'17

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

rel = "স্টাইলশিট" এর অর্থ কী?
সোভেন ক্রাউটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.