2012-08-30 10 views
7

Eventuali duplicati:
ASP.Net MVC 3 Razor: Include js file in Head tagCome per includere JavaScript nella pagina di intestazione MVC4

Non voglio mettere un sacco di JS in qualche layout e ho bisogno di fare per alcune pagine specifiche intendo includere alcune delle JS nella loro intestazione.

Ho provato così ma non funziona come dovrebbe essere.

@{ 
    Layout = "~/Views/Shared/_LayoutInner.cshtml"; 
    @Scripts.Render("~/Scripts/farbtastic/farbtastic.js") 
    @Styles.Render("~/Scripts/farbtastic/farbtastic.css") 
    @Scripts.Render("~/Scripts/jquery.tinycarousel.min.js") 
    @Scripts.Render("~/Scripts/jquery-ui-1.8.11.min.js") 
} 
<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     $('#slider1').tinycarousel(); 
     $("#accordion").accordion(); 
     $('#picker').farbtastic('#color'); 
    }); 
</script> 

Ho cercato così

@{ 
    Layout = "~/Views/Shared/_LayoutInner.cshtml"; 
    <script type="text/javascript" src="@Url.Content("~/Scripts/farbtastic/farbtastic.js")"></script> 
<link href="@Url.Content("~/Scripts/farbtastic/farbtastic.css")" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.tinycarousel.min.js")"></script> 
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")"></script> 
} 

e nessun successo a tutti.

Come posso archiviarlo?

+1

Non è possibile definire un'etichetta principale e fare riferimento a JS nelle pagine? – ssilas777

+0

@ ssilas777 Oh! Come posso farlo? –

+3

Controlla questa domanda: http://stackoverflow.com/questions/4311783/asp-net-mvc-3-razor-include-js-file-in-head-tag Penso che questo sia ciò di cui hai bisogno. – nemesv

risposta

12

Sono sicuro che nella vostra _LayoutInner.cshtml si dovrebbe avere refered file JS simile come questo

<head> 
<link href="@Url.Content("~/Scripts/farbtastic/farbtastic.css")" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")"></script> 
</head> 

Per raggiungere il tuo obiettivo è necessario aggiungere due sezioni denominate nelle vostre pagine _LayoutInner.cshtml testa sezione come questo-

<head> 
<link href="@Url.Content("~/Scripts/farbtastic/farbtastic.css")" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")"></script> 
@RenderSection("JavaScript", required: false) 
@RenderSection("CSS", required: false) 
</head> 

Ora nelle altre pagine da includere pagine JavaScript o CSS in più usano queste sezioni denominate

@section JavaScript 
{ 
    <script type="text/javascript"src="@Url.Content("~/Scripts/farbtastic/farbtastic.js")"></script> 
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery.tinycarousel.min.js")"></script> 
} 

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

Spetta all'utente decidere se includere diverse sezioni con nome per javascript e css.

Spero che aiuti!

+0

Grazie mille !!!! Un'ultima domanda: devo mantenere le SEZIONI in alcuni file esterni? –

+2

No, devi usare le sezioni nelle pagine in cui vuoi includere questi file JS. In generale le sezioni non sono usate solo per includere file esterni, ma per generare un contenuto dinamico in queste sezioni nella risposta finale. In questo caso tu puoi vedere file javascript e file css esattamente nella tua risposta finale nella sezione head. – ssilas777

Problemi correlati