2014-05-19 75 views
1

所以我是新的淘汰賽,我在網上找不到直接的答案。這是情況。我在asp.net mvc partial視圖中有一個下拉列表。它通過具有值和@Html助手的視圖模型填充,特別是dropdownlistfor。我在Web上看到的示例似乎需要依賴的可觀察數組,但下拉列表的所有值均在JavaScript(硬編碼)/中設置,而不是通過服務器端代碼設置。我只想在選定的值發生變化時觀察下拉列表的輸出(即:對於實時預覽類型功能)。任何幫助將不勝感激,因爲我確信我錯過了簡單的事情。謝謝!淘汰賽通過ASP.NET MVC服務器代碼填充下降代碼

+0

那麼你真正的問題是什麼?實施span標籤更新時遇到問題嗎?請包括您已經嘗試過的代碼並指出問題所在。 – PatrickSteele

+0

問題是如何在一般情況下取消這個問題。我沒有任何代碼,因爲我正在搜索SO和網絡來解決這個問題。基本上,情況是如果通過服務器端代碼填充下拉列表的值,那麼我該如何創建本示例中指示的可觀察數組http://knockoutjs.com/documentation/options-binding.html,以便我可以更新跨度與選定的值?一個簡單的例子就是一個等級字段。如果我的成績是7-12,而用戶點擊了8,我希望跨度文本更新爲。我不需要在JS中提供我的下拉值。 – Shawn

回答

1

是這樣的?

<select data-bind="event: {change: mySelectChange},value:myValue"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 
<span data-bind="text:myText"></span> 


<script>... 

function ViewModel() 
{ 
    var self = this; 
    this.myValue = ko.observable(); 
    this.myText = ko.observable(); 

    this.mySelectChange = function (obj, evt) { 
     var item = $(evt.currentTarget); 
     self.myText(item.find('option:selected').text()); 
    }; 
} 

... 
</script> 
+0

我想我可能找到了我在找的東西,但我不能說我喜歡它。 http://forums.asp.net/t/1817193.aspx?Knockoutjs+with+Dropdown+list+on+asp+net+mvc3 也許最好的做法是使用JSON操作方法來獲取我的值爲下拉菜單,然後按照上面引用的Knockout教程? ASP.NET MVC開發人員使用的最佳實踐是什麼,因爲我預料這將成爲常見的KO場景? – Shawn

+0

對不起,我誤解了你最初的問題。您正在尋找所選文字?我已經使用jQuery來獲取文本。我將用一個示例編輯我的答案 – mrpotocnik

+1

我只是好奇,我認爲這會起作用,但它不是針對Knockout正在嘗試建立的MVVM租戶? – Shawn