2011-09-18 85 views
0

我在組合框中有兩個選項。如何在視圖中設置組合框的選定字段

<select id="selLang"> 
    <option value="/en" >english</option> 
    <option value="/fr" >french</option> 
</select> 

當我選擇第二個選項頁面被刷新,並在組合框(我的意思是,作爲選擇的項目。) 的頂部不顯示所選的選項我想設置所選擇的選項成爲視圖中組合框頂部的選定選項。 所以我的問題是我該怎麼做呢?或者我可能需要創建一個cookie?如果是這樣 - 我怎麼做t-h-a-t?

也許這是一個愚蠢的問題,但我在這個地區很新。

在此先感謝!

+0

你是如何生成這個下拉菜單的?你在使用一些幫手嗎?你在使用視圖模型嗎?當用戶更改選擇時,您要調用哪個控制器操作?你怎麼調用它?您打算如何/在哪裏堅持服務器上的用戶選擇,因爲您知道HTTP是無狀態協議。 –

+0

對不起,我錯了,我在視圖 - 我在哪裏產生它.. – ParPar

+0

這並不回答我以前的評論中的任何問題。是的,你確實可以使用cookie來存儲該值。 –

回答

0

您需要設置選項的selected屬性。你可以做如下:

<select id="selLang"> 
    <option value="en" >english</option> 
    <option value="fr" selected="selected" >french</option> 
</select> 

希望這是你想要的東西..

看到this

+0

但我需要它來改變,以防萬一有人改變它,而不是從一開始, – ParPar

0

我建議你考慮看看ASP.NET MVC localization guide這會爲你提供一些不錯關於如何實現這一點的想法。

+0

這是一個真正的偉大指南,我用它來取代語言。我強烈建議在這個網站!但他使用鏈接來更改語言,而不是下拉列表... – ParPar

0

首先,爲什麼當你選擇第二個選項時,頁面被刷新。您是否有任何JavaScript功能可以發佈您的表單?

我問,因爲HTML <select>標籤的更改不會啓動HTTP POST請求。所以,請更新一個解釋。

但是,讓我們回到你的問題。你可以試試這個:

<select id='selLang' name='selLang'> 
    <option value="/en" >english</option> 
    <option value="/fr" >french</option> 
</select> 

這將導致一個POST請求期間<select>標籤成爲successful control。這意味着你可以使用它來創建一個腳本,如:

$(function(){ 
    $('#selLang').val('@HttpContext.Request["selLang"]'); 
}); 
+0

其實我有這個: var urlString = window.location.host; var Lang = $(「#selLang」)[0] .value; window.location =「http://」+ urlString + Lang;(這會自動刷新頁面) 和this:window.location.pathname - 正好是選項的值。頁面刷新。)這就是我想要解決問題並避免使用cookie的方式。 – ParPar

相關問題