The view or its master was not found or no view engine supports the searched locations
asp.net-mvc-4
Solution
Be careful if your model type is String because the second parameter of View(string, string) is masterName, not model. You may need to call the overload with object(model) as the second parameter:
Not correct :
protected ActionResult ShowMessageResult(string msg)
{
return View("Message",msg);
}
Correct :
protected ActionResult ShowMessageResult(string msg)
{
return View("Message",(object)msg);
}
OR (provided by bradlis7):
protected ActionResult ShowMessageResult(string msg)
{
return View("Message",model:msg);
}
Problem
Error like:The view 'LoginRegister' or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/MyAccount/LoginRegister.aspx ~/Views/MyAccount/LoginRegister.ascx ~/Views/Shared/LoginRegister.aspx ~/Views/Shared/LoginRegister.ascx ~/Views/MyAccount/LoginRegister.cshtml ~/Views/MyAccount/LoginRegister.vbhtml ~/Views/Shared/LoginRegister.cshtml ~/Views/Shared/LoginRegister.vbhtml Actually my page view page is `~/Views/home/LoginRegister.cshtml` so what i do and my `RouteConfig` is ``` public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "MyAccount", action = "LoginRegister", id = UrlParameter.Optional } ); } } ```