2014-09-18 5 views
0

Я загрузил свой сайт на сервер. И произошла ошибка. Мой URL-адрес сайта: http://vintageoverseas.org/. Вот страница, это URL является http://vintageoverseas.org/en/Blog, но когда я нажимаю на read more кнопки Blog title затем The resource cannot be found. В этом имени действия является BlogPost и когда я изменить его Post чем эта ошибка произошла вРесурс не найден MVC4

The view 'Post' or its master was not found or no view engine supports the searched locations. The following locations were searched: 
~/Views/Home/Post.aspx 
~/Views/Home/Post.ascx 
~/Views/Shared/Post.aspx 
~/Views/Shared/Post.ascx 
~/Views/Home/Post.cshtml 
~/Views/Home/Post.vbhtml 
~/Views/Shared/Post.cshtml 
~/Views/Shared/Post.vbhtml 

И мое имя контроллера Home и это код

public ActionResult BlogPost(long? Id) 
     { 
      BlogModel blog = new BlogModel(); 
      blog = b.GetBlogDetail(Id.ToString()); 
      List<TagModel> tags = new List<TagModel>(); 
      tags = b.GetBlogTags(blog.blog_id.ToString()); 
      blog.tag_name_list = tags.Select(m => m.tag_name).ToList(); 
      List<ImageModel> image = new List<ImageModel>(); 
      image = b.GetBlogImages(blog.blog_id.ToString()); 
      blog.img_path_list = image.Select(m => m.path).ToList(); 
      blog.parent_cat_id = b.GetMainParent(blog.cat_id); 
      return View(blog); 
     } 

и имя мнение BlogPost

и маршрутизация

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.MapRoute(
       name: "Custom", 
       url: "en/{action}/{id}/{Title}", 
       defaults: new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional, Title = UrlParameter.Optional, en = UrlParameter.Optional } 
      ); 
      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 
+0

У вас есть атрибут имени, украшающий ваше действие? Или вы вызываете вызов «RedirectToAction» из действия «Почта»? –

+0

Этот 'en' предназначен для маршрутизации @AndreiV и нет действия с именем« post » – Manoj

+0

Рассматривали ли вы возможность просмотра с именем« Post.XXX »не существует? Похоже, сообщение об ошибке говорит, что ... Не совсем понятно, что вы спрашиваете - я предполагаю, что вы знаете, что имя представления по умолчанию - это имя действия ... поэтому не уверен, какую помощь вы ищете. –

ответ

0

Вы уверены, что ваша BlogPost действие находится в HomeController.cs? Или есть контроллер с именем «en»?

Вам может понадобиться параметр {controller} в вашем первом маршруте, а затем изменить свой якорь, чтобы использовать контроллер как @Html.ActionLink("Read More...", "BlogPost", "ControllerName", new {id="123", null);

Попробуйте использовать маршрут отладчик - он может быть включен и выключен с помощью переключателя web.config после установлено: https://www.nuget.org/packages/routedebugger

Смежные вопросы