Spark не будет автоматически проверять местоположение видов в текущей версии. Если вы хотите изменить источник (который я предполагаю, что вы, если вы делаете mvc 2 stuff), вот исправление:
Вы должны изменить файл src \ Spark.Web.Mvc2 \ Descriptors \ AreaDescriptorFilter.cs так, что он читает, как показано ниже (изменения выделены **):
Примечание: у меня нет машины я это сделал со мною, так что косые в строке формата, возможно, потребуется быть косой чертой.
Кроме того, этот класс можно создать в своем собственном коде и передать его при регистрации механизма просмотра, но я не помню код конфигурации из верхней части головы.
Это подход, который я сделал с тех пор, как я хотел как можно меньше изменить источник искры.
public class AreaDescriptorFilter : DescriptorFilterBase
{
**private const string areaPathFormatString = "~\\Areas\\{0}\\Views";**
public override void ExtraParameters(ControllerContext context, IDictionary<string, object> extra)
{
object value;
if (context.RouteData.Values.TryGetValue("area", out value))
extra["area"] = value;
}
public override IEnumerable<string> PotentialLocations(IEnumerable<string> locations, IDictionary<string, object> extra)
{
string areaName;
return TryGetString(extra, "area", out areaName)
**? locations.Select(x => Path.Combine(string.Format(areaPathFormatString,areaName), x)).Concat(locations)**
: locations;
}
}
в области перемещения MVC2 в DataTokens, это означает, что u должен изменить эту строку: context.RouteData.Values.TryGetValue («area», out value) : context.RouteData.DataTokens. TryGetValue ("area", out value) – Sasha
Я смотрю код прямо сейчас. Код выше работает для меня прямо сейчас, работая на asp.net mvc 2 beta (последняя версия на сегодняшний день). – midas06