Tôi đã cố gắng tìm ra lý do tại sao truy vấn LINQ trả về danh sách các quốc gia Hoa Kỳ được định dạng cho danh sách thả xuống sẽ không truyền vào Danh sách khi mã trả về phương thức gọi. Các lỗi mà tôi nhận được là:Không thể truyền đối tượng loại WhereSelectListIterator
Không thể cast đối tượng của loại 'WhereSelectListIterator'2 [StateListing.States, <> f__AnonymousTypea'2 [System.String, System.String]]' gõ 'System.Collections. Generic.List`1 [StateListing.States] '
Không gian tên StateListing từ lỗi, là thư viện dll có một lớp gọi là States trả về danh sách các trạng thái được hiển thị dưới đây.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StateListing
{
public class States
{
public string StateAbbriviation { get; set; }
public int StateID { get; set; }
public string StateName { get; set; }
static int cnt = 0;
public static IEnumerable<States> GetStates()
{
return new List<States>
{
new States
{
StateAbbriviation = "AL",
StateID=cnt++,
StateName = "Alabama"
},
new States
{
StateAbbriviation = "AL",
StateID=cnt++,
StateName = "Alaska"
}
//Continued on with the rest of states
}.AsQueryable();
}
}
}
Trong kiểm soát của tôi, tôi thực hiện cuộc gọi đến GetStates trả về danh sách các quốc gia từ thư viện lớp học ở trên.
[HttpPost]
public JsonResult GetStateOptions()
{
try
{
//Return a list of options for dropdown list
var states = propertyRepository.GetStates();
return Json(new { Result = "OK", options = states });
}
Trong lớp lưu trữ thuộc tính, tôi có hai phương pháp để lấy danh sách trạng thái từ thư viện và một phương thức khác để định dạng danh sách trạng thái cho danh sách thả xuống trong chế độ xem của tôi.
public List<States> GetStateList()
{
var items = (from s in States.GetStates()
select s).ToList();
return items;
}
List<States> IPropertyRepository.GetStates()
{
try
{
List<States> RawStates = GetStateList();
var stateList = RawStates.Select(c => new { DisplayText = c.StateName, Value = c.StateID.ToString() });
return (List<States>)stateList; //<=== Error
}
Lỗi xảy ra khi mã đạt đến trả về trong phương thức GetStates.
Bất kỳ trợ giúp nào về vấn đề truyền này giải thích những gì tôi đang làm sai sẽ được đánh giá cao.
Cảm ơn Darin đã làm việc. Tôi đoán tôi đã cố gắng làm cho nó phức tạp hơn cần thiết. – Shawn