2014-09-06 79 views
0

我在我的項目中使用DataTables,我想在一個頁面中放置兩個類似的列表。我決定爲兩者使用相同的局部視圖,但是當我嘗試將DataTables功能應用於他們時,我遇到了Id的衝突。多個部分視圖。 ID衝突

我的部分觀點:

<table style=" margin:0" id="incidents"> 
... 
</table 
<script type="text/javascript"> 
$('#incidents').DataTable(); 

我父視圖:

<h2>Important incidents</h2> 
@Html.Partial("Incidents", Model.Where(m => m.Relevance == true) 
<h2>Other incidents</h2> 
@Html.Partial("Incidents", Model.Where(m => m.Relevance == false).Where(m=>m.Date>DateTime.UtcNow.AddHours(-6).AddDays(-5))) 

是否有可能做到這一點,而無需創建兩個類似的局部視圖?

+0

你爲什麼不在單獨的表中加載兩個部分視圖 – 2014-09-06 06:21:02

+0

@Exception是否意味着在表Id中唯一的區別創建兩個部分視圖? – silentfobos 2014-09-06 06:30:14

+1

通過使用ViewDataDictionary將主視圖中的值傳遞給partial,可以爲表提供不同的'id'屬性 – 2014-09-06 06:50:40

回答

1

您可以通過使用ViewDataDictionary

主要觀點

<h2>Important incidents</h2> 
@Html.Partial("Incidents", Model.Where(...), new ViewDataDictionary { { "id", "important" } }) 
<h2>Other incidents</h2> 
@Html.Partial("Incidents", Model.Where(...), new ViewDataDictionary { { "id", "other" } }) 

<script type="text/javascript"> 
    $('#important').DataTable(); 
    $('#other').DataTable(); 

部分主要着眼於局部傳遞一個值給表不同id屬性

<table id="@ViewData["id"]"> 
    .... 
</table>