我的控制器在我的视图中填充了我的模型,其中列出了strings
,它出现在DropDownList
中。当视图回发给我的控制器时,该列表突然变为null。为什么它是空的,以及我创建的字符串列表发生了什么?MVC在回传中列表为空
该列表已正确填充并显示在视图中。表单元素的其余部分将正确回传。例如,selectedName
具有用户点击的任何名称。唯一不回传的是nameList
。
这里是我的模型的相关部分,
public class MyModel
{
[Display(Name = "Selected")]
public string selectedName{ get; set; }
[Display(Name = "Names")]
public List<string> nameList{ get; set; }
}
相关的获取和我的控制器的后部分,
public class MyController: Controller
{
[HttpGet]
public ActionResult Index()
{
List<string> nameList= getNames();
MyModel model = new MyModel()
model.nameList= nameList;
// Now, model.nameList has a bunch of stuff in it
return View(model);
}
[HttpPost]
public ActionResult Index(MyModel model)
{
if(model.nameList== null)
{
cry();
postOnStackOverflow();
}
return View(model);
}
}
和我查看相关部分(被封装的内部表单)。
<p>
@Html.LabelFor(c => c.nameList):
@Html.DropDownListFor(c => c.selectedName, new SelectList(Model.nameList), new { onchange = "this.form.submit();" })
</p>
我在您的模型中看不到'names'属性 –
@ Selman22对不起,这是一个错字。我改变了很多变量名以符合我的工作政策。现在纠正它。 – Rainbolt