Asp.net mvc 5 默认情况下,让MVC查找特定视图

Asp.net mvc 5 默认情况下,让MVC查找特定视图,asp.net-mvc-5,Asp.net Mvc 5,当控制器代码仅声明return View()时,ControllerC/ActionA的标准MVC模式是查找ControllerC/ActionA.cshtml。我想这样做如果这样的视图不存在,它会寻找一些默认视图,比如Shared/default.cshtml。我怎样才能做到这一点呢?我不知道MVC 5,但您可以从RazorViewEngine创建自定义类 public class MyFallbackLocationViewEngine : RazorViewEngine { pub

当控制器代码仅声明return View()时,ControllerC/ActionA的标准MVC模式是查找ControllerC/ActionA.cshtml。我想这样做如果这样的视图不存在,它会寻找一些默认视图,比如Shared/default.cshtml。我怎样才能做到这一点呢?

我不知道MVC 5,但您可以从RazorViewEngine创建自定义类

public class MyFallbackLocationViewEngine : RazorViewEngine
{
    public MyFallbackLocationViewEngine()
    {
        // Keep default locations and add our own fallback view
        List<string> newLocations = new List<string>(ViewLocationFormats);
        newLocations.Add("~/Views/Shared/Default.cshtml");
        this.ViewLocationFormats = newLocations.ToArray();
    }
}

您可以尽可能多地自定义ViewEngine并覆盖其他方法

谢谢,我将对此进行测试并尽快报告
// Clear default engines and add only yours
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MyFallbackLocationViewEngine());