Я бы создал параллельную иерархию в папке Content и поместил туда файлы, вероятно, в формате HTML.Затем вы можете просто загрузить их через AJAX в представлении, используя соглашение о параллельной иерархии.
Content
Help
Home
index-help.html
about-help.html
Foo
index-help.html
bar-help.html
Затем в ваших представлениях
<div class="help">
<noscript>
<a href='@Url.Content( "~/content/help/home/index-help.html" )'>Click for Help</a>
</noscript>
</div>
<script type="text/javascript">
$(function() {
$('.help').load( '@Url.Content( "~/content/help/home/index-help.html" )' );
});
</script>
Вы также можете извлечь контроллер / действиеиз RouteData в представлении, если ваши маршруты согласованы, и переместите его в файл _Layout.cshtml с путем, предоставленным данными маршрута.
@{
var controller = ViewContext.RouteData["controller"] as string;
var action = ViewContext.RouteData["action"] as string;
var url = Url.Content( string.Format( "~/content/help/{0}/{1}-help.html", controller, action ) );
<div class="help">
<noscript>
<a href="@url>Click for Help</a>
</noscript>
</div>
<script type="text/javascript">
$(function() {
$('.help').load( "@url" );
});
</script>
}