सवाल रेज़र दृश्य पर .css फ़ाइल का संदर्भ कैसे लें?


मुझे पता है कि _Layout.cshtml फ़ाइल पर .css फ़ाइलों को कैसे सेट करें, लेकिन प्रति-दृश्य आधार पर स्टाइलशीट लगाने के बारे में क्या?

मेरी सोच यहां है कि, _Layout.cshtml में, आपके पास है <head> टैग करने के लिए टैग, लेकिन आपके गैर-लेआउट दृश्यों में से एक में नहीं। कहां है <link> टैग जाओ?


155
2018-02-16 20:08


मूल




जवाब:


सीएसएस के लिए जो पूरी साइट के बीच पुन: उपयोग किया जाता है, मैं उन्हें परिभाषित करता हूं <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" />
}

संपादित करें: यह जानना उपयोगी है कि @ रेन्डरसेक्शन, झूठी में दूसरा पैरामीटर का अर्थ है कि इस मास्टर पेज का उपयोग करने वाले दृश्य पर अनुभाग की आवश्यकता नहीं है, और व्यू इंजन इस तथ्य को अनदेखा कर देगा कि कोई "स्टाइल" अनुभाग परिभाषित नहीं है आपके विचार में यदि सही है, तो दृश्य प्रस्तुत नहीं करेगा और जब तक "शैलियाँ" अनुभाग परिभाषित नहीं किया जाता है तब तक एक त्रुटि फेंक दी जाएगी।


275
2018-02-16 20:21



आप जानते हैं, दूसरे विचार पर, यह इतना बुरा नहीं है। मुझे लगता है कि यह सिर्फ नया और अलग है। - MrBoJangles
यह भी देखें stackoverflow.com/a/4311876/376366 - Fernando Correia
@ सेक्शन स्टाइल -> अनुभाग सेक्शन स्टाइल को हल नहीं कर सकता है, इसका क्या अर्थ है? - Revious
@ सैम, इसका मतलब है कि आपके लेआउट में कोई ऐसा अनुभाग परिभाषित नहीं है। - Darin Dimitrov
@DarinDimitrov शीर्षलेख के अंत की बजाय सटीक स्थिति में प्रस्तुत करने का कोई तरीका है। मैं सीएसएस प्राथमिकताओं के लिए एक विशिष्ट आदेश रखना चाहता हूं। - Marc


मैंने इस तरह एक ब्लॉक जोड़ने की कोशिश की:

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

और _Layout.cshtml फ़ाइल में एक संबंधित ब्लॉक:

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

कौन सा काम करता है! लेकिन मैं मदद नहीं कर सकता लेकिन लगता है कि एक बेहतर तरीका है। अद्यतन: में "झूठा" जोड़ा गया @RenderSection कथन इसलिए जब आप एक जोड़ने की उपेक्षा करते हैं तो आपका दृश्य 'विभाजित नहीं होगा @section बुलाया head


16
2018-02-16 20:21



एक बेहतर तरीका नहीं है, हालांकि मैं खंड का नाम दूंगा "Head"। - SLaks
तुम बिल्कुल सही हो इसे "पेज स्टाइल" कहते हुए यह सुझाव देता है कि यह केवल उस उद्देश्य के लिए है। - MrBoJangles
यदि आप ऐसा करते हैं, तो आपको सभी दृश्यों में "माई स्टाइल" जोड़ना होगा, मैं Darins उत्तर के साथ जाऊंगा। - Filip Ekberg
राइट-ओ। यही कारण है कि मैंने झूठी तर्क को जोड़ा @RenderSection()। अच्छी पकड़। - MrBoJangles


का उपयोग करते हुए

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

या

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

आपके लिए काम कर सकता है

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


9
2018-03-22 15:08



कृपया लिंक पोस्ट न करें डुप्लिकेट जवाब। इसके बजाय, उन अन्य कार्रवाइयों पर विचार करें जो भविष्य में उपयोगकर्ताओं को उनके द्वारा आवश्यक उत्तर ढूंढने में सहायता कर सकते हैं, जैसा कि लिंक किए गए पोस्ट में वर्णित है। - Mogsdad


लेआउट एक मास्टर पेज के समान काम करता है। किसी भी सीएसएस संदर्भ में लेआउट है, किसी भी बच्चे के पेज होगा।

स्कॉट गु का यहां एक उत्कृष्ट स्पष्टीकरण है


3
2018-02-16 20:20



बहुत आभारी। हालांकि, मेरा सवाल यह है कि, मैं एक ही दृश्य का संदर्भ कैसे सेट करूं, न कि "मास्टर"। - MrBoJangles


आप लेआउट.cshtml फ़ाइल में यह संरचना कर सकते हैं

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

0
2018-03-31 03:50



यह मुझे प्रति दृश्य स्टाइल शीट को चुनिंदा रूप से लागू करने की अनुमति कैसे देता है? - MrBoJangles
आप प्रत्येक सेक्शन में कक्षा या आईडी भी जोड़ सकते हैं, और हेडर के अंदर आपके पास mofidul द्वारा वर्णित एक शैलियों की शैली हो सकती है। मैं क्या करता हूं मैं सैस के साथ काम करता हूं, इसलिए प्रत्येक दृश्य में एक अलग वर्ग कंटेनर होता है। इस तरह मैंने प्रत्येक खंड के लिए सैस पेज बनाए, जो अंत में अधिक संरचित और संगठित है। - Leo