Có cách nào để thực hiện công việc tuyên bố using
với các phương pháp chung trong các chế độ xem dao cạo không? Ví dụ tôi muốn các webforms đoạn mãSử dụng các phương pháp chung trong chế độ xem dao cạo
<% using(Html.BeginForm<Controller>(c => c.Method()))
{ %>
Some code
<% } %>
chuyển đổi sang dao cạo như thế này
@using(Html.BeginForm<Controller>(c => c.Method()))
{
Some code
}
nhưng điều đó không làm việc, kể từ khi diễn giải dao cạo <Controller>
như một thẻ HTML. Thêm dấu ngoặc đơn không hoạt động, vì dao cạo không bao gồm dấu ngoặc nhọn bắt đầu và kết thúc BeginForm
. Dưới đây là các cách tiếp cận khác nhau mà tôi đã thử và tôi không thể nghĩ ra thêm nữa.
@using(Html.BeginForm<Controller>(c => c.Method())) // Interpreted as c# to '<Controller>'
{ // interpreted as HTML
Some code // interpreted as HTML
} // interpreted as HTML
@(using(Html.BeginForm<Controller>(c => c.Method()))) // Interpreted as c#
{ // interpreted as HTML
Some code // interpreted as HTML
} // interpreted as HTML
@{using(Html.BeginForm<Controller>(c => c.Method())) // Interpreted as c#
{ // interpreted as c#
Some code // interpreted as c#
} // interpreted as c#
} // interpreted as c#
@(using(Html.BeginForm<Controller>(c => c.Method()))) // Interpreted as c#
@{ // interpreted as c#
Some code // interpreted as c#
} // interpreted as c#
Aynone có biết cách thực hiện việc này không?
Cập nhật: Có vẻ như cách thứ ba ở trên là cách thực hiện việc này. Dao cạo dường như hoạt động như thế này:
@{using(Html.BeginForm<Controller>(c => c.Method())) // Interpreted as c#
{ // interpreted as c#
<p> // interpreted as HTML
Some text // interpreted as HTML
@Code // interpreted as c#
</p> // interpreted as HTML
} // interpreted as c#
} // interpreted as c#
Không phải cách rõ ràng nhất để làm mọi thứ, nhưng nó hoạt động.
Cập nhật 2: Dao cạo có thể đã được cập nhật tại một số điểm, vì bây giờ tùy chọn # 1 ở trên hoạt động như mong đợi.
@using(Html.BeginForm<Controller>(c => c.Method()))
{
Some code
}
Dường như tôi chỉ hoạt động tốt khi kết thúc. Nhưng không có 'BeginForm' có sẵn (tôi đã thực hiện một phương thức trợ giúp nhanh để kiểm tra), vậy bạn có đang sử dụng thư viện bên ngoài hay gì đó không? Lỗi trong cú pháp Razor là gì? –
Buildstarted
Chúng tôi đang sử dụng các phần mở rộng MvcContrib từ Microsoft.Web.Mvc.dll, có chứa một số trình trợ giúp html được nhập mạnh mẽ. Lỗi là @ (Html.BeginForm (...)) hoạt động tốt nhưng @using (Html.BeginForm (...)) không và tôi không thể tìm ra cách để định dạng nó để nó công việc. –