2013-07-26 30 views
2

我的控制器返回一個局部視圖這樣在局部視圖使用反射

return View("MyPartialView", MyModel); 

,但它可能也通過另一個模型

return View("MyPartialView", AnotherModel); 

我現在想從檢索typeof()局部視圖。要做到這一點,我已經聲明(附圖)

@model object 

Type modelType = typeof(model); 

然而

類型或命名空間 '模型' 找不到

我做錯了什麼?是否可以在局部視圖中使用反射?如果是,如何?

不管是Customer還是Product,編輯器都是一樣的。因此,我想遍歷這些屬性併爲它們中的每一個顯示一個文本字段:對於每個模型,我真的需要一個單獨的視圖嗎?如果我可以使用一個很棒的單一視圖!

+0

想知道爲什麼你需要思考?視圖必須儘可能簡單。 –

+0

擁有30個視圖,每個視圖有10個或更多屬性,每個視圖有1個視圖,1行代碼打印出我給出的模型的屬性。第二個是我的想法。如果我在視圖中需要更多的複雜性,我會被強姦,但我已經知道這不會超過每個屬性的單個文本字段。 – Saturnix

+0

'model'應該與大寫的M('Model')。 –

回答

5
Type modelType = typeof(model); 

您的model是一個變量(屬性)在這裏,而不是一個類型。用途:

Type modelType = model.GetType(); 

但嚴重的是,在MVC一個指導方針是,意見應得到簡單。我對這種設計非常懷疑。

+0

GetType和大寫M解決了這個問題。謝謝!該視圖將非常簡單,我不會使用相同的設計來處理更復雜的內容:感謝您的建議! – Saturnix