【问题标题】:Wrong default dropdown list items selected选择了错误的默认下拉列表项
【发布时间】:2015-12-29 10:25:47
【问题描述】:

我们有一个 Asp.net MVC 应用程序,它在输入表单上有几个下拉列表。

我们填写如下列表:

@Html.DropDownListFor(model => model.Title, SelectLists.Title)

public class SelectLists
    {
        public static IEnumerable<SelectListItem> Title = new[]
        {
            new SelectListItem {Text = "Title", Value = "", Selected = true},
            new SelectListItem {Text = "Mr", Value = "Mr"},
            new SelectListItem {Text = "Mrs", Value = "Mrs"},
            new SelectListItem {Text = "Miss", Value = "Miss"},
            new SelectListItem {Text = "Ms", Value = "Ms"},
            new SelectListItem {Text = "Dr", Value = "Dr"}
        };
    }

默认选择的值在部署到我们的生产环境后直接正确,但经过一段时间后,似乎发生的情况是,对于所有下拉菜单,随机值开始在页面加载时被选择。

当我们检查表单上的元素时,selected="selected" 属性设置在有问题的下拉列表中错误显示的值上。

当我们重新部署应用程序时,问题似乎暂时消失了,这让我们相信这可能是 IIS 的问题?

应用程序在 AWS Elastic Beanstalk 上的 windows server 2012 上的 IIS 上运行。

【问题讨论】:

  • 这是通过视图模型或 ViewBag/Session 传递给视图的吗?
  • 视图加载时model.Title的值是多少?
  • @JB06 传递给视图的是什么?
  • @markpsmith 设置为默认空字符串
  • @ahammond 下拉列表的集合

标签: asp.net-mvc iis amazon-elastic-beanstalk windows-server-2012


【解决方案1】:

我收到了来自微软相当乐于助人的回答。他们建议删除静态列表并通过 ViewModel 传递非静态列表。在 Web 应用程序上拥有静态信息意味着这些数据存储在 IIS 的应用程序域中,并且在负载下会受到影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多