Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
C# 具有预选值的MVC下拉列表不允许在需要字段时提交表单_C#_Asp.net_Asp.net Mvc 4_Model View Controller - Fatal编程技术网

C# 具有预选值的MVC下拉列表不允许在需要字段时提交表单

C# 具有预选值的MVC下拉列表不允许在需要字段时提交表单,c#,asp.net,asp.net-mvc-4,model-view-controller,C#,Asp.net,Asp.net Mvc 4,Model View Controller,我有一个由各州填写的下拉列表。加载“更新地址”页面时,该字段的已填写且状态为选中状态。我在模型中的这个状态字段中添加了数据注释“Required”,但它不允许预设值。它不显示消息,但我无法提交表单,我需要选择状态才能提交表单(我猜是重新选择)。如何告诉表单预选值是要验证的值 [Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "StateRequired")] public s

我有一个由各州填写的下拉列表。加载“更新地址”页面时,该字段的已填写且状态为选中状态。我在模型中的这个状态字段中添加了数据注释“Required”,但它不允许预设值。它不显示消息,但我无法提交表单,我需要选择状态才能提交表单(我猜是重新选择)。如何告诉表单预选值是要验证的值

[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "StateRequired")]   
public string State { get; set; }
@Html.DropDownListFor(m=>m.State,(IEnumerable)Model.StatesList,Model.SelectedState,new{@class=“form control form select”})

SelectedState
是一个模型属性,其用户地址的Db值已存储在Db中。

好的,这是解决方案,@LarryBud评论道,将我指向正确的方向

所以基本上,所选的值并没有设置在列表中,但是有人在文本“selecta state”的正常位置添加了该值,所以该状态显示出来了,但不是列表的一部分

我只是在状态列表中将用户的状态标记为选中状态,然后它就解决了

DDList.Add(new SelectListItem() { Text = row["State"].ToString(), Value = row["Abbreviation"].ToString(), Selected = true });


您确定已设置项目的“值”吗?进入浏览器中的开发选项,查看每个状态的值。很好,所选项目没有设置值。
DDList.Add(new SelectListItem() { Text = row["State"].ToString(), Value = row["Abbreviation"].ToString(), Selected = true });