c# - ASP.NET MVC 3 - 当 URL 参数也存在且名称与 View 模型参数相同时,DropDownListFor 失败

标签 c# asp.net-mvc asp.net-mvc-3 html.dropdownlistfor

我不确定这是 DropDownListFor 扩展的错误还是什么,但我们有以下内容:

http://mydomain.com/path/page?myparam=myvalue

在我的 View 模型中,我有以下内容:

public string MyParam { get; set; }
public List<SelectListItem> ParamOptions { get; set; }

当我在 View 中执行以下操作时,无法选择正确的值:

@Html.DropDownListFor(x => x.MyParam, Model.ParamOptions, "Select Value")

但是,当我将 View 模型中的参数“MyParam”更改为“MyParam2”并将我的 View 更新为使用 MyParam2 参数时,它将根据 MyParam2 的值选择正确的选项项。以前当参数名称为 MyParam 时不会。

还有其他人遇到过这个吗?这是 MVC 3 的错误还是我的实现不当?

最佳答案

提到的 URL 呢,

http://mydomain.com/path/page?myparam=myvalue

该 url 有一个带有键“myparam”的查询字符串,因为该名称与属性名称相同,并且当调用该 url 时,它将针对“myparam”添加一个 ModelState 值。

ModelState["myparam"] 将为“myvalue”。

因此,当页面加载时,下拉列表将从下拉列表中选择“myvalue”。

关于c# - ASP.NET MVC 3 - 当 URL 参数也存在且名称与 View 模型参数相同时,DropDownListFor 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9416469/

相关文章:

c# - 接口(interface)会在子类中自动实现吗?

jquery - MVC3 后不显眼的客户端验证但提交前 Hook 可用吗?

c# - 无法使 EF Code First 使用手动更改的数据库

c# - 如何在 C# 中覆盖 Form.Show() 方法

c# - 使用 Singleton 的动态长度数组

c# - 函数的通用约束

asp.net - RenderBody() 和 RenderSection() 必须在每个子布局上?

c# - 如何在 Web Api 中向一个客户端显示/隐藏少数方法以及向另一客户端显示/隐藏其他方法

c# - WTSQueryUserToken 返回 FALSE

ajax - 在 jquery-ajax 函数之后提交