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;
}
そのメソッドを使用してプルされたデータを使用して基本的な HTML テーブルを作成できたため、fillModel
メソッド (実際の SQL クエリを含み、実行する) が正常に機能することを確認しました。また、コードをステップ実行すると、authorized は (私にとっては) true を返します。
nat_acc_nbr
フィールドは、プルされたデータの主キーです。
@Html.Infragistics
問題は、「パラメータ 'id' を空にすることはできません」というArgumentException が引き続き発生することです。この ID がどこにあるのかを調べようとしましたが、これを理解できないようです。前もって感謝します!