C# 剑道ComboxFor在post请求时不绑定
我有这个剑道ComboxFor,当我发送一个post请求时,它没有绑定,它发送的值为null 这是视图模型C# 剑道ComboxFor在post请求时不绑定,c#,asp.net-mvc,kendo-ui,C#,Asp.net Mvc,Kendo Ui,我有这个剑道ComboxFor,当我发送一个post请求时,它没有绑定,它发送的值为null 这是视图模型 public class FormViewModel { public int Id { get; set; } public int ModuleId { get; set; } [Display(Name = "Form Name")] public string FormName { get; set; } [Display(Name =
public class FormViewModel
{
public int Id { get; set; }
public int ModuleId { get; set; }
[Display(Name = "Form Name")]
public string FormName { get; set; }
[Display(Name = "Module")]
public List<ModuleList> ModuleLists { get; set; }
}
public class ModuleList
{
public int? ModuleId;
public string ModuleName;
}
这是我的Kandocomboxfor:
@(Html.Kendo().ComboBoxFor(model => model.ModuleLists)
.DataTextField("ModuleName")
.DataValueField("Id")
.DataSource(d => d.Read(r => r.Action("GetModuleList", "PmsModule")))
.Placeholder("Select Module...")
.Suggest(true)
.HighlightFirst(true)
)
@Html.ValidationMessageFor(model => model.Id)
该模型不进行验证,在调试时,我发现了,即使我在post上的下拉列表中选择了值,我也会收到空值
编辑
我甚至尝试过放下剑道,但即使这样也不行
@(Html.Kendo().DropDownListFor(model => model.Id)
.DataTextField("ModuleName")
.DataValueField("Id")
.BindTo(Model.ModuleLists)
)
ModuleList
的模型只包含字段,不包含属性。将其更改为添加getter/setter的
public class ModuleList
{
public int? ModuleId { get; set; }
public string ModuleName { get; set; }
}
try
语句中的代码需要在自己的块中吗?@AustinWBryan我很抱歉没有得到您的点您不能绑定到复杂对象或复杂对象的集合(moduleList
)绑定到的属性需要是string
@StephenMuecke我已经尝试过了,甚至我使用过model=>model.Id,但是在这种情况下,combobox并没有显示任何东西,同样的事情发生了,这表明.DataSource(d=>d.Read(r=>r.Action(“GetModuleList”,“PmsModule”))
建议您只需硬编码一些测试值-数据源:{data:[{id:1,ModuleName:“One”},{id:2,ModuleName:“Two”}
(您的模型建议您应该绑定到ModuleId
,而不是Id
)
public class ModuleList
{
public int? ModuleId { get; set; }
public string ModuleName { get; set; }
}