2013-06-06 44 views
7

tôi đã có đoạn mã sau đây theo quan điểm của Razor Layout của tôi (được chia sẻ bởi tất cả các quan điểm trong ứng dụng của tôi):Là khu vực mặc định cho Html.BeginForm luôn luôn là khu vực hiện tại trong ASP.NET MVC?

@using (Html.BeginForm("Logout", "Account", FormMethod.Post, new { id = ViewIDs.Shared._AuthenticationPartial.LogoutForm })) { 

này làm việc tốt với lượt xem Trang chủ và tài khoản của tôi, tức là, nó trả lại một hình thức mà được đăng lên ~/Tài khoản/Đăng xuất. Tuy nhiên, khi được sử dụng với chế độ xem bên trong một khu vực được gọi là "Người", nó đột nhiên được đăng lên ~/Người/Tài khoản/Đăng xuất.

Bây giờ, tôi đã có thể khắc phục điều này như sau:

@using (Html.BeginForm("Logout", "Account", new { area = "" }, FormMethod.Post, new { id = ViewIDs.Shared._AuthenticationPartial.LogoutForm })) { 

Đây có phải là đúng cách để làm điều này, ví dụ, là khu vực mặc định bằng cách định nghĩa các khu vực hiện tại? Hoặc tôi đang gặp sự cố cấu hình trong ứng dụng của mình?

+0

Có điều này là đúng. Bạn cần 'new {area =" "}' vì khu vực mặc định là khu vực hiện tại. – nemesv

Trả lời

3

Đó là cách phù hợp. ASP.NET MVC sử dụng giá trị tuyến đường hiện tại trong trình trợ giúp HTML ngầm. Đó cũng là cách bạn có thể thoát khỏi chỉ bằng cách chỉ ra tên hành động khi bạn đang liên kết đến một hành động trong cùng một bộ điều khiển. Nếu bạn đang liên kết đến một khu vực khác, bạn phải nói nó như thế này.

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