2010-11-09 65 views
23

剛剛開始玩knockout.Js這是一個非常棒的框架Steve的確很擅長。有一件事情我現在無法做到,那就是我的Html Helpers。因此,對於〔實施例我有:Knockout.js和MVC

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

但我行使用數據綁定之上,但在一分鐘我不能得到的「數據綁定」屬性到幫助。我以前這樣用過的屬性@class,身份證等,但這個是一個棘手因 - 任何想法..我用盡:

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

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

,但沒有喜悅。我們大量使用的編輯器和文本框傭工和我真的希望這些融入項目與淘汰..

任何幫助非常appretiated

+0

這已被證明是一個有點長篇大論所以我想HtmlHelpers,是否有任何可用的或可這是我的第一個值得嘗試我自己的操作系統項目? – 2010-11-10 16:12:28

回答

32

這應該工作:

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

變量名不能包含一個連字符( - ),但如果你在一個HTML屬性使用下劃線(_),當其「渲染」時它會自動轉換爲連字符。

+0

哇謝謝從來不知道:) +1爲一個有用的提示:) – 2012-01-05 08:36:04

+0

作爲參考,我認爲這是MVC3只... – Tim 2012-01-09 14:21:41

+5

表達式應該是新的{data_bind =「value:SupplierName」} – Quango 2012-07-20 12:27:57

16

您可以提供的屬性無論是作爲匿名對象或作爲字典。在這種特殊情況下的字典應使用:

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

乾杯羅伯特,我剛剛那樣做。一個必須是「供應商名稱」需要「價值:供應商名稱」..謝謝;) – 2010-11-09 11:02:24

+0

那麼。屬性值可以是任何東西......甚至是'value:SupplierName'。 ;)乾杯。 – 2010-11-09 11:07:34

+0

agrred它的價值:PropertyName,我錯過了只有屬性似乎沒有工作?還需要添加valueUpdate屬性,或者由於某種原因它似乎沒有更新我的基礎值。 – 2010-11-10 16:10:57

3

我用Jim的答案作爲我的MVC 4解決方案的基礎。

吉姆:

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

礦:

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