2013-05-07 9 views
8

Nie jestem pewien dlaczego ta składnia narzeka na błąd "Enter nie jest zadeklarowana, może być niedostępna ze względu na poziom ochrony" i musi umieścić "@html (" aby pozbyć się błąd.Używanie w Razor VB.net MVC nie działa zgodnie z oczekiwaniami

blok skarżą błąd

@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 

Jeśli przepisać kod w ten sposób, narzekać nie ma, ale wyświetlacz wyjście „System.Web.MVC.Html” na początku jak na zdjęciu poniżej

 @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 jeśli użycie @<Text>
, to narzekać to - "Korzystanie musi kończyć End Używanie"> enter image description here

+0

Ty Zapomniałem zamknąć '@' zobaczyć w moim przykładzie mam: '@' pamiętać zamykanie '' na końcu linia. – nemesv

+0

Opppss! Za mało w MVC. wszystko wydaje mi się nowe, dzięki! – tsohtan

+0

możliwy duplikat [Dlaczego normalny znacznik wewnątrz @Using Html.BeginForm wymaga znaku @?] (Http://stackoverflow.com/questions/10225394/why-does-normal-markup-inside-an-using-html- beginform-need-an) – KyleMit

Odpowiedz

8

Gdy jesteś wewnątrz Using bloku jesteś w trybie "kodu" w Razor .

Musisz więc użyć @: (dla instrukcji pojedynczej linii) lub @<text> .. </text> (dla instrukcji wieloliniowych), aby przełączyć się z powrotem do "trybu tekstowego" i wyprowadzić html.

Przy użyciu @::

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

lub z użyciem @<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 

Zobacz także sekcję Combining text, markup, and code in code blocks dalszych informacji.

+0

Czy '@' przed '' jest rzeczą VB? Wiem, że to nie jest potrzebne C# – mattytommo

+1

@mattytommo tak '@' jest tylko rzeczą VB w C# potrzebujesz tylko '' – nemesv

+0

nadal mam ten błąd: ">" oczekiwany po uruchomieniu w przeglądarce. w tym wierszu @: ale jest w porządku w czasie projektowania, a także @ nie działa dla mnie. Używam vs 2012. .net 4.5 – tsohtan

Powiązane problemy