2011-01-19 11 views

cevap

45

Razor'daki içerik yer tutucularının karşılığı bölümlerdir. içerik sayfasında Sonra

<head> 
@RenderSection("Styles", required: false) 
</head> 

: senin _Layout.cshtml olarak

@section Styles { 
    <link href="@Url.Content("~/Content/StandardSize.css")" /> 
} 

alternatif bir çözüm ViewBag/ViewData içine stilleri koymak olacaktır:

_Layout.cshtml dosyanızda:

Ve içerik sayfasında: görünüm sayfa düzeni önce idam olur çünkü

@{ 
    ViewBag.Styles = new[] { "~/Content/StandardSize.css" }; 
} 

Bu çalışır.

+2

Bu ayrıca, kafaya özel komut dosyası başvuruları eklemenin harika bir yoludur. – ReinierDG

+0

Alternatif çözüm, çözümlerini henüz Razor'u kullanmayacak olan kişiler için iyidir. Teşekkürler! – Mayo

-2

Şaşırtıcı bir şekilde (benim için), asp: ContentPlaceHolder çalışıyor. Yine de çok tatsız görünüyor. Başka bir yol var mı acaba?

Özellikle, size görünümünde _layout.cshtml içinde <asp:ContentPlaceHolder ID="HeadContent" runat="server" /> ve

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> 
    <link href="@Url.Content("~/Content/StandardSize.css")" rel="stylesheet" type="text/css" /> 
</asp:Content> 

koydu.

+0

Sadece işe yarayacak gibi görünüyor. Oluşturulan HTML'ye baktınız mı? – marcind

+0

Haklısınız. Az önce istediğim tarzların uygulandığını gördüm, ancak HTML'yi kontrol etmedim. Bir sunucu etiketinin Razor ile nasıl işlendiğini merak ediyordum. – JohnOpincar