DropDownListFor - 通过jQuery设置值

时间:2016-12-19 12:03:17

标签: c# jquery ajax asp.net-mvc

我有一个带有DropDownListFor的.Net Core Web应用程序。我有一个AJAX函数,用于检查客户是否在遗留系统上有配置文件,然后自动填充值。这很有效,但在设置下拉列表的值时,模型值始终为0.

@Html.DropDownListFor(m => m.CountryId, CountryService.List().Select(c => new SelectListItem { Value = c.Id.ToString(), Text = c.Name }), "select", new { @class = "form-control input-wide input-required" })

Ajax功能

$("#CountryId").val(countryId).change();
$("#CountryId").val(countryId); //tried both

这将设置下拉列表的值,但是在按下save时,CountryId的model属性始终为0.如果找不到配置文件且客户手动注册并选择了Country,则它会按预期工作。这几乎就像模型没有注意到变化一样?

我缺少什么想法?

谢谢。

1 个答案:

答案 0 :(得分:0)

您传递给DropdownListFor的数据必须匹配并存在于初始列表中,否则设置为默认值。

让我们举一个例子,如果你的DropdownListFor的绑定数据是SelectItem,那么你必须传递文本和值的类型,如果它的对象(类)你必须传递对象的属性的键/值,并且数据必须存在于列表中,即如果您的启动列表是1,2,3,4,但是您传递了5,那么它无法找到。