2014-06-26 114 views
0

實現斯科特·阿倫的下拉列表:http://odetocode.com/blogs/scott/archive/2013/03/11/dropdownlistfor-with-asp-net-mvc.aspxMVC下拉列表獲取文本

利用他的例子,我得到的Id(SelectedFlavorId),但不是實際的文本。

如何獲取操作方法中的實際文本。

+0

你的意思是在回帖後?如果你想要文本而不是id,爲什麼不讓你的'SelectList'中的值是文本,而不是id?例如'SelectList(_flavors,「Name」,「Name」);' –

+0

@intracept - 是的,在帖子後面。我實際上也需要這個ID。 – ra170

+0

如果您有ID,則可以使用EF在後臺使用類似'db.IceCreamFlavors.FirstOrDefault(f => f.ID == vm.ID)''的方式獲取該ID的匹配文本。 –

回答

1

「Postback」是WebForms的概念;假設您啓用了ViewState,當您回發到服務器時,您會從頁面加載中獲得大部分(如果不是全部)原始數據。

在ASP.NET MVC中發佈的唯一數據是綁定到成功輸入的內容。因此,假設你使用jQuery,你需要綁定一個隱藏的輸入,如果你也想文本值:

$('form').on('change', '#SelectedFlavorId', function(e){ 

    var text = $(this).find('option:selected').text(); 
    $('#SelectedFlavorText').val(text); 

}); 

在這裏,我想你取名爲隱藏輸入SelectedFlavorText財產。

+0

這是一個好主意,謝謝! (我只需要修正($ this)到$(this)。 – ra170

+0

@ ra170對不起,這是一個錯字。 –