Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC 5 TemplateEditor中的DropdownList未绑定并触发验证错误_Asp.net Mvc_Data Binding_Html.dropdownlistfor - Fatal编程技术网

Asp.net mvc ASP.NET MVC 5 TemplateEditor中的DropdownList未绑定并触发验证错误

Asp.net mvc ASP.NET MVC 5 TemplateEditor中的DropdownList未绑定并触发验证错误,asp.net-mvc,data-binding,html.dropdownlistfor,Asp.net Mvc,Data Binding,Html.dropdownlistfor,我在ASP.NET MVC的“EditorTemplates”视图中有这段代码 @Html.DropDownListFor(model => model.State, new SelectList(Model.States), "-- Please Select --") @Html.ValidationMessageFor(model => model.State, "", new { @class = "text-danger" }) 这是显示下拉列表,我可以选择一个“状态”。

我在ASP.NET MVC的“EditorTemplates”视图中有这段代码

@Html.DropDownListFor(model => model.State, new SelectList(Model.States), "-- Please Select --")
@Html.ValidationMessageFor(model => model.State, "", new { @class = "text-danger" })
这是显示下拉列表,我可以选择一个“状态”。但一旦焦点转移到另一个盒子。验证错误显示出来

为什么下拉列表没有将值指定给model.state

同样,这不是“主视图”。MainView使用以下代码调用此“模板”

@Html.EditorFor(m => m.CustomerAddress)

请告知。

在“Stephen Muecke”的帮助下,我发现[StringLength]属性导致了问题。因为这个值来自一个下拉列表,所以我真的不再需要那个属性了。删除后,所选值将正确输入。

它与
ModelState
(服务器端)无关-您将收到客户端验证错误。您正在生成的选项的
属性是什么(显然不是2个字符)公共列表状态{get;}public AddressViewModel(){States=new List();States.Add(“CA”);States.Add(“NV”);States.Add(“AZ”);}这是一个长度为2个字符的字符串的简单列表。以及将哪些验证属性应用于
状态
[Required][StringLength(2,ErrorMessage=“0}必须是{1}个字符长。”,MinimumLength=2)][DataType(DataType.Text)][Display(Name=“State”)]公共字符串状态{get;set;}