The view or its master was not found or no view engine supports the searched locations

asp.net-mvc-4

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 }
            );
        }
    }

Best Answer

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 paramater:

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);
}
Related Topic