事先我很抱歉,如果我問一些明顯的東西。我正在從常規的asp.net編程切換到MVC和從VB到C#。這很好,但我還有很多東西要學。不能隱式轉換類型system.collections.generic.list
我收到以下錯誤
無法隱式轉換類型system.collections.generic.list < project.models.state>到system.collections.generic.list < project.state>。隱式轉換存在(是否缺少強制轉換?)
這是我在我的控制器
public ActionResult CityForm()
{
var states= _context.Departamentos.ToList();
var viewModel = new CityFormViewModel
{
City= new City(),
States= states
};
return View();
}
我的視圖模型看起來如下
public IEnumerable<State> States{ get; set; }
public City City{ get; set; }
我已經看着其他有類似錯誤的帖子,但看起來原因與我所擁有的不同。我之前在不同的應用程序中使用了這種方法,並且它運行良好,我在這一方面做的不同之處在於我添加了一個ADO.NET實體數據模型,以便與Telerik控件一起使用。
我也注意到,在我的其他應用程序時,我徘徊在我的控制,我得到了以下信息變量(**之間就是我將鼠標懸停):
States = **states**
(local variable)List<State> states
但如果我在那裏,我得到錯誤的應用程序在同一個地方徘徊,我得到一個不同的消息
States = **states**
(local variable)List<Models.State> states
,你可以看到的是國家的前綴與模型。
我真的很感謝任何幫助,我可以得到。謝謝。
'project.models.state'不是'project.state'(他們是在不同的組件)。您的視圖模型屬性需要爲'public IEnumerable States {get;組; }' - 與你的查詢返回一樣(並停止使用'var'!) –
我在他如何使用var時看不到任何問題。如果他沒有使用var,他會得到相同的編譯器錯誤。因爲他使用var,他必須修復更少的代碼。 – bit2know
@ bit2know我認爲'var'的問題在這種情況下很明顯:它使得查看類型不匹配更加困難。 –