2013-05-07 8 views
8

Ich bin mir nicht sicher, warum diese Syntax Fehler melden "Enter wird nicht deklariert. Kann aufgrund der Schutzstufe nicht zugänglich sein" und muss "@html (" um loszuwerden Fehler.Verwendung in Razor VB.net MVC funktioniert nicht wie erwartet

dieser Block beschweren Fehler

@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 

Wenn Sie den Code auf diese Weise umschreiben, rügen die, aber die Ausgangsanzeige „System.Web.MVC.Html“ am Anfang wie das Bild unten

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

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

enter image description here

hallo nemesv wenn Use @<Text>
, dann ist es diese beschweren - "Die Verwendung muss mit mit End Ende"> enter image description here

+0

Sie haben die Nähe vergessen die '@' sehen in meinem Beispiel habe ich: '@' die Schließung beachten '' am Ende die Linie. – nemesv

+0

Oppdss! Zu neu in MVC. Alles scheint mir neu, Danke! – tsohtan

+0

mögliches Duplikat von [Warum benötigt normales Markup in einem @Using Html.BeginForm ein @?] (Http://stackoverflow.com/questions/10225394/why-does-normal-markup-inside-an-using-html- beginform-need-an) – KyleMit

Antwort

8

Wenn Sie sich in einem Using Block sind Sie in "Code-Modus" in Razor sind .

Sie müssen also die @: (für einzelne Zeilenanweisungen) oder @<text> .. </text> (für mehrzeilige Anweisungen) verwenden, um zurück in den "Textmodus" zu wechseln und html auszugeben.

Mit @: mit:

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

oder mit @<text> mit:

@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 

Siehe auch Combining text, markup, and code in code blocks Abschnitt für weitere Informationen.

+0

Ist das '@' vor '' eine VB-Sache? Ich weiß, dass es nicht benötigt wird C# – mattytommo

+1

@mattytommo ja die '@' ist eine einzige VB-Sache in C# Sie brauchen nur '' – nemesv

+0

Ich habe immer noch diesen Fehler: '>' erwartet, wenn im Browser ausgeführt. an dieser Zeile @: aber es ist ok für die Entwurfszeit und auch @ funktioniert nicht für mich. Ich benutze vs. 2012. .net 4.5 – tsohtan

Verwandte Themen