Tôi có trang cái được chia sẻ mà tôi đang sử dụng từ 2 khu vực khác nhau trong ứng dụng mvc 2 của tôi. Trang chính có một liên kết hành động hiện đang chỉ định bộ điều khiển và hành động, nhưng tất nhiên liên kết không hoạt động nếu tôi ở sai khu vực. Tôi thấy không có quá tải cho liên kết hành động mà có một tham số khu vực, là nó có thể làm gì?Làm cách nào để chỉ định tên khu vực trong liên kết hành động?
Trả lời
đặn nó ra ..
Html.ActionLink("Link Text", "ActionName", "ControllerName", new { Area = "AreaName" }, new{})
Something Tôi chạy vào ngay sau này, mà tôi tưởng tượng những người khác có thể chạy vào: Nếu bạn cần liên kết từ bên trong một khu vực để một hành động không trong một khu vực, bạn vẫn cần phải chỉ định Khu vực làm chuỗi trống.
Ví dụ: tôi đã chuyển một số mã MVC vào một khu vực và thấy rằng tôi cần cập nhật url trong trang chính tham chiếu các trang khác trên trang web.
Để xác định một địa chỉ để một cái gì đó không trong một khu vực, sử dụng
Html.ActionLink("home", "Index", new { area = "", controller = "Home" })
Đây là một mẹo rất hay! Nhưng nó cho kết quả không mong đợi với MVC 2 .. Chỉnh sửa nhỏ - Html.ActionLink ("home", "Index", new {area = "", controller = "Home"}) –
Trong MVC2 cho area="root"
làm việc cho tôi như sau
Html.ActionLink("Home", "Index", "Home", new { Area = "root" }, new{})
Dưới đây là những gì tôi đã đưa ra như một giải pháp để cho phép người dùng liên kết với các hệ thống xác thực được tạo trước.
Mỗi khu vực của tôi có phiên bản của tệp _LoginPartial.cshtml.
Tôi có thể tải ứng dụng để sử dụng một phiên bản duy nhất của tệp, tuy nhiên tôi tiếp tục gặp lỗi khi cố sử dụng một phần đăng nhập duy nhất.
Nó chỉ là một sửa đổi nhỏ đối với phiên bản gốc được tạo ban đầu, nhưng có vẻ như hoạt động tốt khi được sử dụng trong các khu vực cụ thể.
Đây là đoạn mã đó được sử dụng trong tất cả trong số họ:
@if (Request.IsAuthenticated)
{
<text>
Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", new { area = "" }, htmlAttributes: new { @class = "username", title = "Manage" })!
@using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
</text>
}
else
{
<ul>
<li>@Html.ActionLink("Register", "Register", "Account", new { area = "" }, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", new { area = "" }, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
Thiết lập rõ ràng 'htmlAttributes:' đã làm việc rất tốt cho việc sử dụng nhiều tham số. –
Sử dụng:
Html.ActionLink("Text", "ActionName", "ControllerName", new { Area = "AreaName" }, null)
Note: tham số thứ 4 là phải vượt qua con đường Values
, nếu bạn vượt qua một tham số có sản phẩm nào nó sẽ xem xét cấu trúc gốc và nếu bạn vượt qua giá trị thích hợp, nó sử dụng nó như là khu vực.
Cũng đừng quên sử dụng null
hoặc new{}
như tham số thứ 5 vì đi qua null
hoặc new {}
khi tạo liên kết hành động sẽ không quá tải phương pháp (text,action,controller,route data)
hoặc (text,action,controller,route data,html attribute)
của nó vì vậy sử dụng phương pháp thích hợp
Một lừa gọn gàng bạn có thể làm nếu bạn đang sử dụng diện tích rất nhiều trong Chế độ xem, hãy xác định nó là một biến ở trên cùng:
@{ var awesomeArea = new { area = "Awesome" }; }
@Html.Action("Something", "Somewhere", awesomeArea)
@Html.ActionLink("Stuff", "FooBar", awesomeArea)
- 1. Tạo liên kết chéo (href) khu vực
- 2. Khu vực di động Vs Nhiều khu vực dự án?
- 3. Làm cách nào để có tên Bộ điều khiển và Hành động từ Uri Liên kết?
- 4. Set khu vực mặc định - Tránh `, mới {diện tích = ""}` trên mỗi liên kết trên trang web
- 5. Làm cách nào để chỉ định quốc gia/khu vực trong khi tạo bản đồ trong R?
- 6. Làm cách nào để phát hiện một liên lạc trên một khu vực cụ thể
- 7. R: tìm chỉ số khu vực gần
- 8. Làm cách nào để tạo một AuthorizeAttribute tùy chỉnh dành riêng cho khu vực, bộ điều khiển và hành động?
- 9. Cách đăng ký các khu vực để định tuyến
- 10. Làm cách nào để đặt đường viền trên khu vực?
- 11. Làm cách nào để xác định liệu một địa chỉ được hiển thị trong khu vực hiện có thể xem?
- 12. Làm thế nào để vẽ trong khu vực nonclient?
- 13. Làm thế nào để bạn di chuyển một cam kết đến khu vực dàn trong git?
- 14. Làm thế nào để hiện đang thực hiện khu vực?
- 15. Làm cách nào để nhận URL liên kết giới thiệu trong hành động ASP.NET MVC?
- 16. tuyến Register đăng ký khu vực
- 17. Làm cách nào để kiểm tra logic đăng ký khu vực trong MVC 3?
- 18. Liên kết bên trong khu vực có thể click lớn hơn (CSS Only)
- 19. MKMapView đặt khu vực
- 20. Emacs: đánh dấu liên tục của một khu vực
- 21. Làm cách nào để người dùng autotools chỉ định kết hợp giữa liên kết tĩnh và động?
- 22. Làm thế nào để làm cho LinearLayout trong scrollview để lấp đầy toàn bộ khu vực
- 23. Làm cách nào để bạn chỉ định: kiểu liên kết trong triển khai lớp div?
- 24. Làm cách nào để thêm target = "_ blank" vào liên kết trong div được chỉ định?
- 25. khu vực PDFBox PDFTextStripperByArea phối
- 26. Làm thế nào để làm cho khu vực vẽ Canvas trong suốt trong android?
- 27. Làm cách nào để kích hoạt hành động/sự kiện mặc định của liên kết HTML (phần tử neo)?
- 28. ASP.NET MVC ActionLink bên ngoài khu vực
- 29. Get Tên quốc gia/khu vực từ windows phone 8
- 30. Làm cách nào để tạo toàn bộ khu vực của mục danh sách trong thanh điều hướng của tôi, có thể nhấp làm liên kết?
Có cách tiếp cận tốt này. – Ravia
AH !!! đó là 'mới {} 'phức tạp ở cuối tôi cứ quên bao gồm! –
@ Pure.Krome - vâng. Không có gì trực quan về nó! – Jeremy