2011-12-17 13 views
9

Bene, penso che il team ASP.NET MVC abbia rilasciato un bug piuttosto significativo nell'anteprima degli sviluppatori per asp.net mvc 4, o sto facendo qualcosa di stupido ... Ecco il problema e i passaggi da riprodurre.ASP.NET MVC 4 Dev Anteprima Razor in Sezioni Errore

  1. Creare una nuova MVC 4 applicazione mobile
  2. creare una nuova sezione nel layout (es. @RenderSection ("testa", false))
  3. nella azione di controllo semplicemente gettare un messaggio nel ViewBag
  4. quindi in una vista che utilizza il layout principale, aggiungere il seguente codice di seguito.
@section head { 
    $(function() { 
     var newVariableName = "@(ViewBag.Message)"; 
    }); 
} 

Si noterà che il parser rasoio pensa in realtà che la sezione è stata completata per il jquery su Dom caricato porre fine brace invece di coppia fine della sezione. Ho provato lo stesso codice esatto in un'applicazione asp.net MVC 3 e ha funzionato senza problemi.

Qualcun altro ha riscontrato questo errore nell'anteprima ASP.NET MVC 4 per sviluppatori?

+0

sì, me! hai il codice javascript incompleto come output, giusto? – tugberk

+0

Sì, fondamentalmente lo considera terminato. In che modo questa anteprima per sviluppatori è stata rilasciata con un bug così ridicolo? Inoltre, come mai nessuno ha pubblicato qualcosa a riguardo! –

+0

In realtà ho provato a postare questo, ma ho sempre pensato che il problema fosse sul mio codice (il mio codice javascript era un po 'complicato). Voglio dire, è l'anteprima dello sviluppatore, non puoi aspettarti molto. Inoltre, non hai una licenza go-live. lo sai, vero? Se dev. l'anteprima fa esplodere la tua macchina, è su di te, non su MSFT. – tugberk

risposta

6

Un trucco rapido per risolvere questo problema è utilizzare < testo> blocchi </testo> attorno allo script java. Ecco come potrebbe apparire fino a quando il team MVC di ASP.NET risolve questo problema.

@{ 
<text> 
    $(function() 
    { 
     var newVariableName = "@(ViewBag.Message)"; 
    }); 
</text> 
} 
0

Come accennato in precedenza, provare questo nel file cshtml ...

@section head { 
@{ 
    function JSMeth1() 
    { 
     // doing your stuff, razor parser wont suck 
    } 
}}