Этот ответ специально для ASP.NET MVC5. Для работы с другой версией MVC может потребоваться небольшая модификация, но в целом она должна применяться.
Чтобы return Partial(model)
уважать символы подчеркивания в частичных именах, вам нужен пользовательский механизм просмотра. К счастью, это чрезвычайно тривиальный движок пользовательского представления.
public class CustomRazorViewEngine : RazorViewEngine
{
public CustomRazorViewEngine()
{
var underScored = new[] { "~/Views/{1}/_{0}.cshtml", "~/Views/{1}/_{0}.vbhtml" }
PartialViewLocationFormats = underScored.Union(PartialViewLocationFormats).ToArray();
}
}
Следующий формат является шаблоном по умолчанию для общих представлений:
~/Views/Shared/{0}.cshtml
~/Views/Shared/{0}.vbhtml
Вы также можете включить альтернативы для них, если хотите. Если вы специально хотите обслуживать только файлы с символом подчеркивания, удалите объединение и просто используйте: PartialViewLocationFormats = underScored;
Это с механизмом просмотра бритвы, я предполагаю, что он будет сравним с механизмом просмотра веб-форм, если это ваш выбор.
Наконец, вам нужно зарегистрировать это как механизм просмотра:
public class Startup
{
public void Configuration(IAppBuilder app)
{
//View Engines
ViewEngines.Engines.Remove(ViewEngines.Engines.Single(x => x is RazorViewEngine));
ViewEngines.Engines.Add(new CustomRazorViewEngine());
Класс Startup
специфичен для MVC5, он может немного отличаться в разных версиях. Вы можете использовать файлы App_Start с webactivator или global.asax в других версиях.
person
Chris Marisic
schedule
12.01.2016