当我发布包含下拉列表的表单时,我收到了RequestBindingException 。此外,服务器返回带有以下 POST 数据的 HTTP 400 错误请求:
Address1:address1
Address2:address2
City:city
County:County
Countries:GB
PostalCode:test123
我不确定我做错了什么。是否与尝试在 ViewModel 的构造函数中分配 Country / SelectedCountry 属性有关?如果是这样,我应该如何为这些属性分配初始/默认值?
或者使用我的 ViewModel 作为端点参数是一个坏主意(它应该是一个单独的 dto 吗?)
我的 ViewModel 看起来像这样:
public class AddressDetailsViewModel
{
public AddressDetailsViewModel()
{
Countries = new List<SelectListItem>
{
new SelectListItem
{
Selected = true,
Text = "United Kingdom",
Value = "GB"
}
};
SelectedCountry = new List<SelectListItem>
{
new SelectListItem
{
Selected = true,
Text = "United Kingdom",
Value = "GB"
}
};
}
...
}
我正在使用 Html Helper 创建下拉列表:
<li>
@Html.LabelFor(x => x.Countries)
@Html.DropDownListFor(x => x.Countries, Model.SelectedCountry)
</li>
我的服务端点(不会被击中)看起来像:
public object Post(AddressDetailsViewModel data)
{
...
}