Problem polega na tym, że umieszczenie zmiennej C# w obrębie funkcji JS w obrębie @Section powoduje powstanie nieprawidłowego javascript (tylko w MVC 4).ASP.NET MVC 4 - Razor w ramach funkcji JavaScript w obrębie @ Section Powoduje błąd zakresu
W funkcji JS w MVC 3 wszystko jest wykonywane zgodnie z oczekiwaniami.
@section test {
<script type="text/javascript">
$(function() {
alert(@DateTime.Now);
});
</script>
}
Podaj ten sam kod i umieść go w aplikacji MVC4, a otrzymasz zniekształcony JS.
HTML na stronie rzeczywiście czynią, co następuje:
<script type="text/javascript">
$(function() {
alert(12/27/2011 11:04:04 AM);
i html wyemituje
); }
Uwaga: znacznik skryptu zamykającego nie jest tworzony.
Wygląda na to, że zamknięcie nawiasu klamrowego w funkcji JS jest mylone, ponieważ jest to nawias klamrowy w grze Razor.
Zauważ, że ja również uznającej RenderSection („test” false ") w moim _Layout.cshtml pliku.
Wow, ten wpis sprawił, że dowiedziałem się o mvc4 ... –