Вы можете сделать свой частичный строго типизированный для некоторой модели представления:
@model SearchViewModel
@using (Html.BeginForm())
{
@Html.LabelFor(x => x.Keywords)
@Html.EditorFor(x => x.Keywords)
<button type="submit">OK</button>
}
и затем при вставке части вы можете передать эту модель вида:
@Html.Partial("_Search", new SearchViewModel { Keywords = "some initial value" })
или даже лучше, модель представления вашего основного вида уже будет иметь свойство типа SearchViewModel
, и вы сможете вызывать частичное, как это:
@Html.Partial("_Search", Model.Search)
Теперь, очевидно, в вашем действии Index вам больше не нужно использовать какие-либо ViewData, но вы можете напрямую работать со своей строго типизированной моделью представления:
public ActionResult Index()
{
var model = new MyViewModel
{
Search = new SearchViewModel
{
Keywords = "some initial value"
}
};
return View(model);
}