2009-08-23 31 views
36

Giả sử nếu tôi có bảng này trong db của tôi: Sản phẩmCách sử dụng Tiền tố Bind?

Nó có

ProductId 
ProductName 
ProductType 

Bây giờ vì lý do gì tôi không thể đặt tên textbox tôi ProductName và ProductType vì vậy bây giờ Xem Phương pháp của tôi sẽ trông như thế này

public ViewResult Test([Bind(Exclude ="ProductId")] Product) 

Vì vậy, bây giờ thông qua hoạt động của tôi xung quanh không có gì phù hợp trong sản phẩm này vì chúng có tên khác nhau.

Vì vậy, tôi đoán đây là nơi Tiền tố sẽ đến nhưng tôi không biết cách sử dụng nó. Tôi cũng không làm cách nào để sử dụng và Loại trừ cùng một lúc.

Ai đó có thể cho tôi ví dụ không?

Trả lời

115

Tiền tố được sử dụng như sau nếu theo quan điểm của bạn, bạn có ...

<select name="p.ProductType">....</select> 
<input type="text" name="p.ProductName" /> 

Bạn có thể liên kết dưới hình thức đến với một thể hiện của mô hình của bạn bằng cách làm một cái gì đó giống như

public ActionResult([Bind(Prefix="p")]Product product) 

Bạn nên lưu ý rằng MVC sẽ tự động làm điều này cho bạn nếu bạn đặt tên đối số phương thức của bạn p.

Tiền tố có thể rất hữu ích nếu bạn đang cố gắng liên kết nhiều thực thể cùng một lúc (ví dụ: hai trường tên).

Để sử dụng loại trừ ràng buộc vào một số thuộc tính (tức là tránh những người đi qua trong ProductIds trong một hình thức giả mạo), chỉ cần đặt tên thuộc tính để loại trừ

public ActionResult([Bind(Prefix="p", Exclude="ProductId")]Product product) 

Điều này sẽ đảm bảo rằng các ProductID trên thực thể của bạn không bao giờ được thiết lập .

Nếu bạn muốn ràng buộc hai tên trường hoàn toàn khác nhau, ví dụ: Gõ vào ProductType bạn có thể xem xét ràng buộc mô hình tùy chỉnh hoặc chỉ lấy trường ra khỏi FormCollection.

+1

Câu trả lời hay. +1 - điều này đã giúp tôi. – Chev

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