How to use ViewDataDictionary
Most of the time developers need this trick when making common views.
this is a complete code section about how to use common partial views.
-My Custom PartialView for a SelectList (Shared/MultiSelectList.cshtml)
@model IEnumerable <SharedModels.CustomSelectListItem>
<select name="@ViewData["name"]" id="@ViewData["id"]" multiple="multiple" data-native-menu="false" tabindex="-1">
<option>@ViewData["defaultOption"] < /option>
< option value="0" > All < /option>
@foreach (var item in Model)
{
< option value="@item.value" > @item.name < /option>
}
</select>
-Main Partial VIEW (/SearchPanel.cshtml)
< input type="text" id="@(ViewBag.Mod)_search_text" name="name" value=""/ >
@*below code will call my custom partial view with viewdatadictionary parameters*@
@{Html.RenderPartial("MultiSelectList", (IEnumerable)ViewBag.pp, new ViewDataDictionary { { "id", "search_select_privacy" }, { "name", "select_privacy" }, { "defaultOption", "Privacy Type(s)" } });}
<a href="#" data-role="button" id="@(ViewBag.Mod)_searchkey" > Search
- Controller
public PartialViewResult SearchBox(string Mod)
{
ViewBag.Mod = Mod;
ViewBag.pp = new List {
new CustomSelectListItem{value=1,name="public"},
new CustomSelectListItem{value=2,name="private"},
new CustomSelectListItem{value=3,name="global"}
};
return PartialView("~/Views/Shared/SearchPanel.cshtml");
}