2010-11-09 27 views
23

Chỉ mới bắt đầu chơi với knockout.Js đó là một khuôn khổ tuyệt vời mà Steve thực sự làm tốt với điều đó. Một điều tôi dường như không thể làm vào phút đó là cấy ghép nó với những người trợ giúp Html của tôi. Vì vậy, đối với exmaple tôi đã có:Knockout.js và MVC

<%: Html.TextBoxFor(model => model.Division) %> 

nhưng tôi muốn dòng để sử dụng databind trên đó nhưng tại phút tôi không thể có được "dữ liệu liên kết" thuộc tính vào helper. Tôi đã sử dụng các thuộc tính trước như @class, Id vv nhưng điều này là khó khăn do sự - bất kỳ ý tưởng .. Ive đã cố gắng:

<%: Html.TextBoxFor(model => model.SupplierName, new { data-bind = "SupplierName"}) %> 

<%: Html.TextBoxFor(model => model.SupplierName, new { "data-bind"" = "SupplierName"}) %> 

nhưng không có niềm vui. chúng tôi chủ yếu sử dụng người giúp Editor và hộp văn bản và tôi thực sự muốn tích hợp các thành Item với knock out ..

Bất kỳ giúp ích nhiều cho appretiated

+0

này được chứng minh là có một chút hơi dài HtmlHelpers vì vậy tôi nghĩ, Có sẵn hoặc đây có thể là nỗ lực đáng giá đầu tiên của tôi tại một dự án hệ điều hành của riêng tôi? –

Trả lời

32

này nên làm việc:

<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %> 

Tên biến không thể chứa một dấu gạch ngang (-) nhưng nếu bạn sử dụng một dấu gạch dưới (_) trong một thuộc tính HTML, nó sẽ tự động được chuyển đổi thành dấu gạch nối khi 'kết xuất' của nó.

+0

Wow cảm ơn không bao giờ biết rằng :) 1 cho một mẹo hữu ích :) –

+0

Để tham khảo, tôi nghĩ rằng đây là MVC3 chỉ ... – Tim

+5

biểu thức phải là mới {data_bind = "value: SupplierName"} – Quango

16

Bạn có thể cung cấp các thuộc tính một trong hai đối tượng như vô danh hoặc như một cuốn từ điển . Trong trường hợp cụ thể này, từ điển nên được sử dụng:

<%: Html.TextBoxFor(m => m.SupplierName, new Dictionary<string, object> { { "data-bind", "SupplierName" } }) %> 
+0

Chúc mừng Robert, tôi chỉ nhận được điều đó. One Gotcha là "SupplierName" cần phải là "value: SupplierName" .. Cảm ơn;) –

+0

Vâng. Giá trị thuộc tính có thể là bất cứ điều gì ... ngay cả 'giá trị: SupplierName'. ;) Chúc mừng. –

+0

agrred đó là giá trị: PropertyName mà tôi đã bỏ lỡ chỉ có PropertName dường như không hoạt động? Ngoài ra, cần phải thêm thuộc tính valueUpdate hoặc dường như không cập nhật giá trị cơ bản của tôi vì một số lý do. –

3

Tôi đã sử dụng câu trả lời của Jim làm cơ sở cho giải pháp MVC 4 của mình.

Jim:

<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %> 

Mine:

@Html.TextBoxFor(model => model.SupplierName, new { data_bind = "value: SupplierName" })