0

これが私が持っているものです:

var listAddresses = GetAddresses().ToList();
return Json(new JsonResult { Data = new SelectList(listAddresses, "Name", "Id") }, JsonRequestBehavior.AllowGet);

しかし、「System.Dynamic.ExpandoObject」には「名前」という名前のプロパティが含まれていませんというエラーが表示されます。

listAddresses は 10 項目で構成されています。デバッグするとき、それらのそれぞれを見るとき、動的ビューに移動すると、名前と ID があります。これを取り戻す方法は?

4

3 に答える 3

0
var listAddresses = GetAddresses().ToList();
var data = new 
{ 
    Data = new SelectList(listAddresses, "Name", "Id") 
};
return Json(data, JsonRequestBehavior.AllowGet);

Json(...)は、JsonResult両方は必要ありません。

于 2012-05-21T12:35:55.600 に答える
0

このようにしてみてください-->

var listAddresses = GetAddresses().ToList(); 
        List<ListItem> addressList = new List<ListItem>();
        foreach (IAddress address in listAddresses )
            {
                ListItem items = new ListItem();
                items.Text = address.Name;
                items.Value = address.ID;
                addressList .Add(items);


            }
        }
    return Json(new JsonResult { Data = new SelectList(addressList, "Value", "Text") }, JsonRequestBehavior.AllowGet);
于 2012-05-21T12:46:29.100 に答える
0

dynamicキーワードを使用せずに C# の動的機能を使用することはできません。そう:

var listAddreses = GetAddresses().ToList();

あなたList<ExpandoObject>が言及したプロパティを本当に本当に持っていない が残ります。 ただし、次のように言う場合:

List<dynamic> listAddresses = GetAddresses().ToList();

それはうまくいくはずです。

于 2012-05-21T13:08:56.583 に答える