我在 dotnet core 2.1 上为我的项目使用 Razor 页面,应用程序似乎没有正确绑定我的属性,简单类型(int 和 string 类型)正确绑定但不是复杂类型列表,有没有工作为了这个?
我的页面处理程序如下所示:
public async Task<IActionResult> OnGetDTResponseAsync(DataTableOptions options) {// Some Code}
当我使用调试器逐步完成时,“DataTableOptions 选项”的所有简单类型属性都填充得很好,但复杂类型返回 null。
我的模型看起来像这样:
public class DataTableOptions
{
public string Draw { get; set; }
public int Start { get; set; }
public int Length { get; set; }
public List<DataTableColumnOrder> Order { get; set; }
public List<DataTableColumn> Columns { get; set; }
public DataTableColumnSearch Search { get; set; }
public List<string> Params { get; set; }
public DataTableOptions() { }
public class DataTableColumn
{
public string Data { get; set; }
public string Name { get; set; }
public bool Searchable { get; set; }
public bool Orderable { get; set; }
public DataTableColumnSearch Search { get; set; }
public DataTableColumn() { }
}
public class DataTableColumnSearch
{
public string Value { get; set; }
public bool Regex { get; set; }
public DataTableColumnSearch() { }
}
public class DataTableColumnOrder
{
public int Column { get; set; }
public string Dir { get; set; }
public DataTableColumnOrder() { }
}
}
在尝试解决此问题时,我尝试使用
public async Task<IActionResult> OnGetDTResponseAsync(List<Dictionary<string, string>> columns)
在我的页面处理程序中代替 DataTableOptions 的 columns 属性,所以我可以手动将属性绑定到我的类:我得到了我的列的完整列表,它的属性绑定到它,除了 DataTableColumn 的 DataTableColumnSearch 属性,它也是一个复杂类型结果为空。
public async Task<IActionResult> OnGetDTResponseAsync(List<Dictionary<string, object>> columns)
也不行。
这是 fiddler 中请求的样子:
GET /CMS/Index?handler=DTResponse&draw=1&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=false&columns%5B0%5D%5Borderable%5D= false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=名称&columns%5B1%5D%5Bname%5D=&columns%
牧羊人nacy
相关分类