我在CONTROLER一種方法,其中我通過查看與不同類型的類似對象:傳遞不同類型的,以查看
case ItemType.Magnets:
{
return View(dbHelper.Magnets.Details(id));
}
case ItemType.Maps:
{
return View(dbHelper.Maps.Details(id));
}
如何可以寫爲這個視圖?
我在CONTROLER一種方法,其中我通過查看與不同類型的類似對象:傳遞不同類型的,以查看
case ItemType.Magnets:
{
return View(dbHelper.Magnets.Details(id));
}
case ItemType.Maps:
{
return View(dbHelper.Maps.Details(id));
}
如何可以寫爲這個視圖?
您可能想創建兩個不同的視圖,每個視圖都稱爲唯一視圖,並且每個視圖都接受其自己的視圖模型。
您還需要在控制類指定視圖的名字:
return View("ViewName_1", dbHelper.Maps.Details(id));
或
return View("ViewName_2", dbHelper.Magnets.Details(id));
@AlexDefine除非你想創建一個通用視圖中的所有類型的屬性,這並不容易。
部分原因我在這裏:
@model object
<table>
@{
var properties = from prop in ViewData.ModelMetadata.Properties
let propInfo = prop.ContainerType.GetProperty(prop.PropertyName)
where !ViewData.TemplateInfo.Visited(prop)
select prop;
}
@foreach (var prop in properties)
{
<tr>
<td>
<div style="float: right;">
@prop.GetDisplayName()
</div>
</td>
<td>
<div class="editor-field">
@Html.Editor(prop.PropertyName, new { ContainerModel = Model })
</div>
</td>
</tr>
}
</table>
更多或更少,這使得任何一種型號的表。但你應該自己升級它以滿足你的需求。
那麼我知道,但我正在尋找更快的方式..在您的情況下,我需要爲每種產品類型創建12個視圖,這是很多。 –
謝謝,多數民衆贊成在:) –
您需要爲不同的項目創建不同的視圖。這裏是解決
case ItemType.Magnets:
{
return View("MagnetsView",dbHelper.Magnets.Details(id));
}
case ItemType.Maps:
{
return View("Maps",dbHelper.Maps.Details(id));
}
如果你想顯示磁鐵您需要創建磁鐵視圖項目。地圖也一樣。
如果磁鐵和貼圖是子類並繼承自相同的基類,那麼您可以爲此創建視圖。否則,我不知道,我不認爲你應該對不同類型有相同的看法。 – Tobberoth
'Details(id)'返回的類型是否相同? –
更新了答案。 – AgentFire