Tôi đang làm việc với MVC trong .net 4.0. Tôi có một Html.ActionLink cơ bản và tôi muốn chuyển nhiều tham số tới controller/action.Cách chuyển nhiều tham số (một số đối tượng phức tạp) với Html.ActionLink
Mỗi lần tôi gỡ lỗi ActionResult chỉ MỘT trong các tham số của tôi đi qua và giá trị khác là null (tùy thuộc vào giá trị nào trước tiên). Bây giờ tôi biết tôi có thể vượt qua trong các đối tượng phức tạp kể từ khi tôi có thể nhận được "League" đối tượng để đi qua. Tuy nhiên, tôi không chắc tại sao chỉ có MỘT tham số của tôi làm cho nó thông qua bất cứ lúc nào.
Mã trong Xem: (bạn đừng quấy rầy tôi về ViewBag Tôi biết nó không phải là phổ biến Ngoài ra, Liên đoàn là một đối tượng phức tạp..)
@Html.ActionLink("Sort By WeeK", "Sort", "Schedule",
new { league = ViewBag.League, sortType = "Week" }, null)
Mã trong Bộ điều khiển: (không có bất ngờ ở đây)
public ActionResult Sort(League league, string sortType)
{
//Do some stuff here
return View("Schedule");
}
Tôi đoán câu trả lời sẽ xoay quanh định tuyến. Điều này đưa tôi đến câu hỏi thứ 2 của tôi. Làm thế nào tôi có thể nhận được loại ActionLink này (Action/Controller/Collection của các đối tượng phức tạp và đơn giản) để làm việc mà không cần phải thêm bản đồ mới. Có một RouteMap chung/wildcard tôi có thể thêm vì vậy tôi không phải liên tục thêm bản đồ tuyến đường giải phẫu giống hệt với global.asax. Hoặc có lẽ tôi muốn một số tính linh hoạt trong loại đối tượng mà tôi muốn chuyển vào một Hành động để tôi không thể xác định trước chữ ký chính xác.
Tôi đã xem nhiều bài đăng về chủ đề này nhưng không ai trong số họ trả lời câu hỏi của tôi.
lạ. Hãy thử FormCollection trong hành động của bộ điều khiển của bạn và xem nó có đang trả về nhiều khóa hay không. Trường hợp xấu nhất senario bạn có thể biến nó thành một biểu mẫu và gửi HTML ẩn. – Ammar
Khi bạn nói "Cái nào là cái đầu tiên", bạn có ý nghĩa đầu tiên trong chữ ký phương thức hay đầu tiên trong URL của liên kết không? URL được tạo ra trông như thế nào? –