你好,我有一个编辑表,并希望设计一列作为一个变量下拉。下拉列表的值来自控制器中实现的ControllerDrpDwn方法。我怎么能得到这个输出作为下拉选项?
editor = new $.fn.dataTable.Editor({
ajax: { url: "/Controller/EditorTable" , type: "POST"},
table: "#tbl",
fields: [{
label: "abc:",
name: "abc"
},{
label: "xyz:",
name: "xyz",
type: "select"
// option: Output from ControllerDrpDwn method
}]
});
方法:
public async Task<IActionResult> ControllerDrpDwn()
{
return Ok(await _context.Dropdownoptions.Where(x => x.Selectbezeichnung == "xyz").Select(x => new
{
name = x.Optionbezeichnung
}).ToListAsync());
}
如果您在Razor页面中编写javascript代码,您可以遵循以下代码来获得结果:
@{var options = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model);}
editor = new $.fn.dataTable.Editor({
ajax: { url: "/Controller/EditorTable" , type: "POST"},
table: "#tbl",
fields: [{
label: "abc:",
name: "abc"
},{
label: "xyz:",
name: "xyz",
type: "select"
option: @Html.Raw(options)
}]
});
但是在控制器中,你需要像这样修改代码:
public async Task<IActionResult> ControllerDrpDwn()
{
return Ok(await _context.Dropdownoptions.Where(x => x.Selectbezeichnung == "xyz").Select(x => new
{
label= x.Optionbezeichnung,
value='value of item comes here'
}).ToListAsync());
}