2013-05-07 31 views
8

Tôi không chắc chắn lý do tại sao cú pháp này phàn nàn lỗi "Enter không được khai báo. Có thể không truy cập được do mức độ bảo vệ" và phải đặt "@html (" để có được thoát khỏi sự lỗi.Sử dụng trong Razor VB.net MVC không hoạt động như mong đợi

khối này phàn nàn lỗi

@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 

Nếu viết lại mã theo cách này, các phàn nàn đi, nhưng màn hình hiển thị đầu ra "System.Web.MVC.Html" ở đầu như hình dưới đây

 @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 nếu sử dụng @<Text>
, nó phàn nàn này - "Sử dụng phải kết thúc với End Using"> enter image description here

+0

Bạn đã quên đóng '@' xem trong ví dụ của tôi tôi có: '@' lưu ý việc đóng '' ở cuối dòng. – nemesv

+0

Opppss! Quá mới trong MVC. mọi thứ dường như mới mẻ đối với tôi, Cảm ơn !. – tsohtan

+0

thể trùng lặp của [Tại sao đánh dấu bình thường bên trong một @Using Html.BeginForm cần một @?] (Http://stackoverflow.com/questions/10225394/why-does-normal-markup-inside-an-using-html- beginform-need-an) – KyleMit

Trả lời

8

Khi bạn đang ở trong một khối Using bạn đang ở trong "chế độ mã" trong Razor .

Vì vậy, bạn cần sử dụng @: (đối với các câu lệnh đơn) hoặc @<text> .. </text> (đối với báo cáo nhiều dòng) để chuyển về "chế độ văn bản" và đầu ra html.

Với việc sử dụng @::

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

hoặc với việc sử dụng @<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 

Xem thêm phần Combining text, markup, and code in code blocks để biết thêm.

+0

Có phải '@' ở trước '' một điều VB? Tôi biết nó không cần nó C# – mattytommo

+1

@mattytommo có các '@' là một chỉ điều VB trong C# bạn chỉ cần '' nemesv

+0

tôi vẫn nhận được lỗi này: '>' mong đợi khi chạy trong trình duyệt. tại dòng này @: nhưng không sao khi thiết kế và @ không hoạt động đối với tôi. Tôi đang sử dụng vs 2012. net 4.5 – tsohtan

Các vấn đề liên quan