ViewDataDictionary can be used to replace the ViewData dictionary in the partial view... If you don't pass a ViewDataDictionary parameter then the parial's viewdata is the same as the parents.
An example of how to use it in the parent is:
@Html.Partial("_SomeTable", (List<CustomTable>)ViewBag.Table, new ViewDataDictionary {{ "Key", obj }});
Then within the partial you can access this obj as follows:
@{ var obj = ViewData["key"]; }
A completely different approach woud be to use the Tuple class to group both the original model and extra data together as follows:
@Html.Partial("_SomeTable", Tuple.Create<List<CustomTable>, string>((List<CustomTable>)ViewBag.Table, "Extra data"));
The model type for the partial would then be:
@model Tuple<List<CustomTable>, string>
Model.Item1 gives the List object and Model.Item2 gives the string
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…