Tôi không nghĩ rằng bạn có thể quá tải cùng tên hành động với một động từ theo mặc định. Như là chủ đề khác bạn chỉ ra để nói, bạn có thể quá tải các phương pháp & sau đó sử dụng một thuộc tính để thay đổi hành động ánh xạ tới phương pháp, nhưng tôi đoán đó không phải là những gì bạn đang tìm kiếm.
Một tùy chọn khác mà tôi đã sử dụng trước đây (phụ thuộc vào mức độ phức tạp/khác nhau của quá tải) chỉ đơn giản là sử dụng các giá trị nullable cho các tham số &. Vì vậy, thay vì:
public ActionResult DoSomething(int id)...
public ActionResult DoSomething(string name)...
chỉ có:
public ActionResult DoSomething(int? id, string? name)
Không phải là giải pháp đẹp nhất, nhưng nếu một trong tình trạng quá tải chỉ được xây dựng trên một sau đó nó không phải là quá xấu một thỏa hiệp.
Một tùy chọn cuối cùng có thể đáng để đi (tôi chưa thử nó & thậm chí không biết nếu nó hoạt động, nhưng về mặt logic nó nên), là viết thực hiện ActionMethodSelectorAttribute
so sánh các tham số được truyền trong ControllerContext
đến phương thức chữ ký & cố gắng tạo ra một kết quả phù hợp nhất (tức là cố gắng giải quyết sự mơ hồ hơn một chút so với việc thực thi mặc định).
Điều này là khá nhiều những gì tôi làm, nhưng tôi viết nó là công cộng ActionResult DoSomething (int? Id, tên chuỗi) và chỉ cần kiểm tra String.IsNullOrEmpthy (tên) trong phương thức. – Chris