2013-05-07 13 views
8

Non sono sicuro del motivo per cui questa sintassi si ripresenta errore "Invio non dichiarato. Può essere inaccessibile a causa del livello di protezione" e deve inserire "@html (" per eliminare il errore.Utilizzo in Razor VB.net MVC non funziona come previsto

questo blocco si lamentano errore

@Using (Html.BeginForm("GetUser", "UserProfile", FormMethod.Post)) 
     Enter User id :- @Html.TextBox("UserId",Model) -- This line must write in this way @Html("Enter User id :-") 
     <input type="submit" value="Submit data" /> --This line complain ">" expected" 
    End Using 

Se riscrivere il codice in questo modo, il lamentano andato, ma il display di uscita "System.Web.MVC.Html" all'inizio come l'immagine qui sotto

 @Html.BeginForm("GetUser", "UserProfile", FormMethod.Post) 
     Enter User id :- @Html.TextBox("UserId",Model) 

    <input type="submit" value="Submit data" /> 

enter image description here

hi nemesv se Usa @<Text>
, è lamentarsi questo - "Utilizzando deve terminare con End Using"> enter image description here

+0

Hai dimenticato la fine del '@' vedere nel mio esempio ho: '@' notare la chiusura '' alla fine del la linea. – nemesv

+0

Oppps! Troppo nuovo in MVC. tutto mi sembra nuovo, grazie !. – tsohtan

+0

possibile duplicato di [Perché il markup normale all'interno di @Utilizzo di Html.BeginForm è necessario un @?] (Http://stackoverflow.com/questions/10225394/why-does-normal-markup-inside-an-using-html- beginform-need-an) – KyleMit

risposta

8

Quando si è all'interno di un blocco Using ci si trova in modalità "codice" a Razor .

Quindi è necessario utilizzare @: (per istruzioni a riga singola) o @<text> .. </text> (per istruzioni a più righe) per tornare a "modalità testo" e generare html.

Con l'utilizzo di @::

@Using (Html.BeginForm("GetUser", "UserProfile", FormMethod.Post)) 
     @:Enter User id :- @Html.TextBox("UserId",Model) 
     @:<input type="submit" value="Submit data" /> 
End Using 

o con l'utilizzo di @<text>:

@Using (Html.BeginForm("GetUser", "UserProfile", FormMethod.Post)) 
     @<text>Enter User id :-</text> @Html.TextBox("UserId",Model) 
     @<text><input type="submit" value="Submit data" /></text> 
End Using 

veda anche la sezione Combining text, markup, and code in code blocks per ulteriori informazioni.

+0

'' 'davanti a' 'una cosa VB? So che non è necessario C# – mattytommo

+1

@mattytommo sì il '@' è una cosa solo VB in C# è necessario solo '' – nemesv

+0

ho ancora ricevuto questo errore: '>' previsto quando viene eseguito nel browser. a questa riga @: ma è ok in fase di progettazione e anche @ non funziona per me. Sto usando vs 2012. .net 4.5 – tsohtan

Problemi correlati