0
我有一個檢索來自DB的事件和passwing查看一個動作:避免開關塊
public ActionResult EventOverview(int id, string type)
{
var model = CreateEventViewData<EventViewData>(id);
switch (type)
{
case "Concert":
return View("Controls/EventsInfo/ConcertInfo", model);
case "Film":
return View("Controls/EventsInfo/FilmInfo", model);
case "Exhibition":
return View("Controls/EventsInfo/ExhibitionInfo", model);
case "Evening":
return View("Controls/EventsInfo/EveningInfo", model);
case "MasterClass":
return View("Controls/EventsInfo/MasterClassInfo", model);
case "Performance":
return View("Controls/EventsInfo/PerformanceInfo", model);
case "Sport":
return View("Controls/EventsInfo/SportInfo", model);
}
}
問題,即(ConcertInfo
,FilmInfo
...)含有大量的重複代碼的所有視圖(JS ,標記)。我想創建一般視圖和小的單獨視圖。
一般認爲(EventInfo
):
<script type="text/javascript">
general js code
</script>
<div id="container">
<div id="content">
<div class="section">
@switch(Model.Type)
{
case "Film": // load concrete view
@Html.Partial("Controls/EventsInfo/FilmInfo", Model.Event);
break;
//and so on
}
@Html.Partial("Controls/SocialListShare")
<div class="wrap_tabs">
<ul class="tabs infoMovieTabs">
<li><a href="#"><span class="title">General</span> </a></li>
<li><a href="#" class="active"><span class="title">Schedule</span> </a></li>
<li><a href="#"><span class="title">News</span> </a></li>
<li><a href="#"><span class="title">Review</span> </a></li>
<li><a href="#"><span class="title">Photo</span> </a></li>
<li><a href="#"><span class="title">Video</span> </a></li>
</ul>
</div>
<div id="publicationBlockContent" class="contentTabs">
</div>
</div>
</div>
</div>
該解決方案避免重複,但我在視圖
問題switch
塊:什麼是確定要顯示什麼樣的看法(或如何最好的辦法爲我的代碼避免switch
塊)?
感謝和抱歉我的英語。
謝謝。但是,所有字段(用於電影,用於音樂會...)包含在一張表中。 – user348173 2012-03-27 09:20:38
如果您知道它們在同一個表格中,只需在模板中輸出TR,TD。 – Aliostad 2012-03-27 09:22:19