2010-08-14 86 views
0

我有一個奇怪的問題。我已經寫一個代碼來改變由一<select>onchange視圖這樣的:爲什麼此代碼更改位置,因爲我需要它

<% Html.BeginForm(); %> 
<label for="id" >Automat:</label> 
<%= Html.DropDownList("id", Model as SelectList, new { @onchange = "window.location.href = document.getElementById('id').options[document.getElementById('id').selectedIndex].value;" })%> 
<% Html.EndForm(); %> 

選定的值是數字(即1,2,...)。

突然間,我能夠通過改變所選擇的選項從URL

http://localhost:58296/Content/ViewContent/2 

http://localhost:58296/Content/ViewContent/3 

..我真的不知道爲什麼它的工作原理。任何人都可以向我解釋嗎?

回答

2

下拉列表中選定的索引是列表中項目的從0開始的索引。

<select> 
    <option>Some Option 1</option> <!-- I have index 0 --> 
    <option>Some Option 2</option> <!-- I have index 1 --> 
    <option>Some Option 3</option> <!-- I have index 2 --> 
</select> 

你是從字面上講選擇列表,「當你改變,搶值的選定索引,並更改網址到該指數的最後一部分。」

+0

好吧,已經有幫助,但我在哪裏說只改變URL的最後部分?我認爲改變window.location.href屬性應該改變整個URL。 – Trimack 2010-08-14 17:41:44

+1

@Trimack遵循與「a href」相同的邏輯。除非你有一個領先的'http:s://',否則它將被視爲相對位置。 – 2010-08-14 17:58:40

相關問題