我正在尝试在 MVC 应用程序中创建一个 Infragistics 组合框。
这是视图中的代码:
@using (Html.BeginForm())
{
<h4>Choose a customer:</h4>
<div id="table">
@Html.Infragistics().ComboFor(item => Model)
.ID("comboBox")
.Width("270px").ID("customerCombo")
.DataSourceUrl(Url.Action("GetAllCustomerData", new { ibu = ViewBag.IBU }))
.ValueKey("nat_acc_nbr")
.TextKey("nat_acc_nbr")
.ResponseDataKey(null)
.DataBind()
.Render();
</div>
<input id="submitButton" type="submit" value="query" />
}
这是控制器中的 GetAllCustomerData 方法:
[AuthorizeEagleUser]
[HttpGet]
public JsonResult GetAllCustomerData(string ibu)
{
bool authorized = SecurityCheck(ibu);
if (authorized)
{
IQueryable<AllCustomersModel> customers = new AllCustomersData().fillModel(ibu);
JsonResult result = new JsonResult()
{
Data = customers,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
return result;
}
else return null;
}
我已经验证了该fillModel
方法(包含并执行实际的 SQL 查询)确实可以正常工作,因为我已经设法使用使用该方法提取的数据创建了一个基本的 HTML 表。此外,当我单步执行代码时,authorized 确实返回 true(对我而言)。
该nat_acc_nbr
字段是提取数据的主键。
问题是我不断收到 ArgumentException@Html.Infragistics
在线,说“参数 'id' 不能为空。” 我试图找到这个 id 的位置,以便我可以填充它,但我似乎无法弄清楚这一点。提前致谢!