Другие ответы верны, но я подумал, что я отвечу на ваше последнее предложение:
В дополнение к этому, вместо того, чтобы делать вышеупомянутое, могу ли я иметь возможность изменить, какие частичные представления отображаются в представлении на основе значения из моего контроллера?
Ну, частичные представления визуализируются в самом представлении (если не вызывать из JavaScript и не привязывать непосредственно к DOM) со следующим кодом:
<%: Html.RenderPartial("SomePartial") %>
Таким образом, чтобы предотвратить "суп из кода" (если операторы) в вашем представлении, вы используете помощник HTML, который вызывает RenderPartial после проверки ViewContext:
public static string RenderCustomPartial(this HtmlHelper helper, RouteData rd)
{
string partialName;
if (rd.Values["SomeParam"] == 1)
partialName = "PartialOneName";
else
partialName = "PartialTwoName";
return helper.RenderPartial(partialName);
}
А затем в виде:
<%: Html.RenderCustomPartial(ViewContext.RouteData) %>
Вы могли бы внести некоторые изменения в вышеперечисленное - например, получить доступ к данным маршрута непосредственно в расширении, пройти через модель для связывания в парциальном и т. Д., - но вы поняли идею.
В качестве альтернативы вы можете сделать приведенный выше оператор IF в вашем контроллере и вставить частичное имя представления в ViewData, а затем использовать его в обычном вызове RenderPartial в вашем View.
Все, что плавает на вашей лодке. :)