Nếu bạn đang sử dụng phương pháp loại Html.TextBoxFor()
, bạn có thể cũng kết thúc với Form controls có dấu chấm trong tên của họ, như thế này:Tham số Bộ điều khiển MVC cho phần tử biểu mẫu có dấu chấm trong đó?
<input type="text" name="Contact.FirstName" id="Contact_FirstName" />
Nếu bạn muốn MVC để lập bản đồ các lĩnh vực này được ghi tên vào thông số trong bộ điều khiển của bạn (trái ngược với tham số đối tượng hoặc bất kỳ thứ gì), bạn phải lấy tên tham số đúng. Phải làm gì với các dấu chấm?
Cả này:
[HttpPost]
public ActionResult FooAction(string firstName)
không này:
[HttpPost]
public ActionResult FooAction(string contact_FirstName)
dường như để làm việc.
Chỉnh sửa: Có thông số đối tượng phù hợp sẽ hoạt động (ví dụ: see clicktricity's answer), nhưng tôi đang tìm cách thực hiện với các tham số giá trị được đặt tên.
Xin chào, điều đó thật thú vị. Tại sao bạn gọi nó là lạm dụng? Đây không phải là những gì mà BindAttribute dành cho? – codeulike
Dường như thuộc tính BindAttribute.Prefix chỉ nhằm mục đích cung cấp một bí danh cho thể hiện kiểu phức. –
Nó cũng hoạt động trên MVC 2. Tôi gọi đây là 'sáng tạo' hơn là hack. – codeulike