можно решить эту проблему с бритвенными хелперов. Это своего рода элегантно-хакки, но это помогло мне.
Так в родительском окне вы определить помощник:
@helper HtmlYouWantRenderedInAPartialView()
{
<blink>Attention!</blink>
}
Затем, когда вы предоставляете частичными, вы пройдете этот помощник к нему
@Html.Partial("somePartial", new ViewDataDictionary { { "OptionalSection1", (Func<HelperResult>)(HtmlYouWantRenderedInAPartialView) } })
Тогда внутри частичного вида вы называете этот помощник, как так
<div>@ViewData.RenderHelper("OptionalSection1")</div>
Наконец, вам необходимо иметь этот метод расширения, чтобы упростить «вызов» pa RT
public static HelperResult RenderHelper(this ViewDataDictionary<dynamic> viewDataDictionary, string helperName)
{
Func<HelperResult> helper = viewDataDictionary[helperName] as Func<HelperResult>;
if (helper != null)
{
return helper();
}
return null;
}
Так все дело в том, чтобы передать делегат этого помощника, а затем, когда вид ребенка называет его содержимое получить визуализации, где вы хотите их.
Конечным результатом зрения ребенка будет выглядеть следующим образом
<div><blink>Attention!</blink></div>
Любой обходной? У меня есть Layout-> Page-> Partial. Мне нужны сценарии/макеты, на которые нужно ссылаться и загружаться в голову, когда это частичное есть. Любой не-глупый способ сделать это? В чем смысл этого ограничения? – Shimmy
@Shimmy вы могли бы попробовать поставить какую-то структуру данных в ViewData, которая указывает, на какие вещи следует ссылаться на странице Layout. – marcind
Спасибо. Сейчас я просто читаю о [Cassette] (http://getcassette.net/), которая выглядит как достойное решение. Спасибо. – Shimmy