У меня есть проект MVC, который требует наличия двух разных папок Просмотр. Один из них - ~/Views/
и один - ~/Framework/Views/
. Это делается путем создания пользовательского вида двигателя на основе обзора бритвы двигатель, как это:ASP.NET MVC: Папки с несколькими представлениями и файл _ViewStart.cshtml
public class MyViewEngine : RazorViewEngine
{
private static string[] AdditionalViewLocations = new[]{
"~/Framework/Views/{1}/{0}.cshtml",
"~/Framework/Views/{1}/{0}.vbhtml",
"~/Framework/Views/Shared/{0}.cshtml",
"~/Framework/Views/Shared/{0}.vbhtml"
};
public MyViewEngine()
{
base.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(AdditionalViewLocations).ToArray();
base.ViewLocationFormats = base.ViewLocationFormats.Union(AdditionalViewLocations).ToArray();
base.MasterLocationFormats = base.MasterLocationFormats.Union(AdditionalViewLocations).ToArray();
}
}
Проблема заключается в том, что я хочу использовать другой файл _ViewStart.cshtml в каждой папке 2 Views (т.е. ~/Views/_ViewStart.cshtml
для просмотры, найденные в папке ~/Views/
и ~/Framework/Views/_ViewStart.cshtml
для видов, найденных в папке ~/Framework/Views/
), однако View Engine использует только первый найденный, который является оригинальным в ~/Views/
.
Это можно сделать?
Спасибо
Почему бы не использовать районы вместо того, чтобы возиться с движком просмотра? –
Это определенно возможно - на самом деле я просто взбивал его на своей машине, используя предоставленный вами механизм просмотра, просто скопированный и вставленный. Я не вижу такого же поведения, как вы. У меня есть два файла _ViewStart, один в ~/Framework/Views/_ViewStart.cshtml и один в ~/Views/_ViewStart.cshtml. Когда я запускаю представление в ~/Framework/Views /, он использует Framework _ViewStart. Когда я запускаю представление в ~/Views /, он использует _ViewStart. Двойная проверка кода в RazorViewEngine с использованием DotPeek также подтверждает, что так оно и должно быть. Вы уверены, что у вас что-то не хватает? – 2013-03-07 23:32:44
@NickAceves: Спасибо, что ты прав. Мой файл был сохранен в неправильном месте, и дубликат неправильного файла был сохранен в нужном месте! Что за dooch! Еще раз спасибо. (поставьте его в ответ, и я отметю его) – hofnarwillie