问题
I'm not sure why this syntax complain error "Enter is not declared. May be inaccessible due to protection level" and must put "@html(" to get rid the error.
This block complain error
@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
If rewrite the code in this way, the complain gone, but the output display "System.Web.MVC.Html" at the beginning like the image below
@Html.BeginForm("GetUser", "UserProfile", FormMethod.Post)
Enter User id :- @Html.TextBox("UserId",Model)
<input type="submit" value="Submit data" />

hi nemesv if Use @<Text>
,it's complain this -->"Using must end with End Using."

回答1:
When you are inside a Using
block you are in "code mode" in Razor.
So you need to use the @:
(for single line statements) or @<text> .. </text>
(for multi line statements) to switch back to "text mode" and output html.
With using @:
:
@Using (Html.BeginForm("GetUser", "UserProfile", FormMethod.Post))
@:Enter User id :- @Html.TextBox("UserId",Model)
@:<input type="submit" value="Submit data" />
End Using
or with using @<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
See also the Combining text, markup, and code in code blocks section for further info.
来源:https://stackoverflow.com/questions/16414271/using-in-razor-vb-net-mvc-not-work-as-expected