【发布时间】:2016-12-19 10:54:03
【问题描述】:
我正在渲染一个带有填充视图模型的视图。 Visual Studio 的即时窗口确认在渲染点,Title 和 Country 已设置值,但只有 Country 值是正确的。标题已恢复为第一个 SelectListItem 值。
切换下拉菜单的来源(两者都可以使用相同的帮助器)没有区别,无论我使用哪个来源,Title 属性始终默认返回第一项。
如果我改用@Html.TextBoxFor...,则值会正确显示。我的问题更像是请求帮助 - 什么会导致这种行为?
我的视图模型
public string Title {get; set;}
public string Country {get; set;}
查看
...
ViewBag.Title = "Test"
...
@Html.DropDownListFor(x => x.Title, CertificateFormHelpers.GenerateTitles(), new {@class = "form-select"})
@Html.DropDownListFor(x => x.Country, Countries.All(), new { @class = "form-select" })
更新:视图的属性名称有冲突。更新了视图以包含此声明。
【问题讨论】:
-
如果选择第一个选项,则表示
Title的值与其中一个选项值不完全匹配 -
确实是我的理解。但是,如果我只是切换助手,尽管值匹配,但 Title 仍然不起作用。它绝对匹配。
-
你是什么意思如果我只是切换助手?不,他们不匹配。如果
Title的值为"abc"并且您生成的选项之一具有value="abc",它将被选中 -
如果 Title 使用 Country.All 并且我选择了一个项目,该值仍会重置为列表中的第一个。值 =“Miss”,在即时窗口中 Model.Title 上的属性 ==“Miss”。它仍然会重置。
-
抱歉,你说的没有道理。