2010-08-14 114 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

相关问题