Per molte ragioni, è meglio mettere la maggior parte, se non tutti i JS in file JS separati (in modo da poter usufruire di riutilizzo, minimizzazione, ottimizzazioni del browser, le reti di distribuzione di contenuti, ecc)
Per leggere il risultato del codice di rasoio sul lato server nei file JS utilizzare uno dei seguenti metodi:
1) inserire il codice rasoio in una variabile javascript nella vista (codice non testato)
<script type="text/javascript">
if(!MyGlobalVariables){
MyGlobalVariables = {};
}
MyGlobalVariables.IndexUrl = "@Url.Action("Index")";
</script>
2) Utilizzare un attributo personalizzato (preferibilmente prefisso con dati- come suggerito in HTML 5 spec). Vedi la discussione correlati qui: Can I add custom attribute to HTML tag?
<div data-index-url="@Url.Action("Index")"></div>
Poi, l'uso $ (this) .attr ("data-index-url") in jQuery per accedere alla marcatura rasoio reso.
3) Inserisci il C# nei campi di input nascosti sulla tua vista e leggi l'input nascosto nel tuo file JS.
<input id="indexUrl" type="hidden" value="@Url.Action("Index")" />
Per leggere questo in jQuery, è necessario utilizzare $ ("# indexUrl"). Val()
fonte
2012-03-13 10:39:08
perché hai un * 'C# aspect' * nelle vostre javascript? Non dovresti. –