0

는 내가 그것을 찾을 수 없습니다 오류액세스 asp.net MVC 컨트롤러 ActionResult

자원 아래에 제공

(http://localhost:9001/Hotel/Index) (내 controlelr는 HotelController 조치가 인덱스입니다) 컨트롤러 액션 결과를 액세스하려는.

설명 HTTP 404. 찾고있는 리소스 (또는 해당 종속성 중 하나)가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수없는 것일 수 있습니다. 다음 URL을 검토하고 철자가 올바른지 확인하십시오.

URL 요청 :

public class BoxyController : MainController 
    { 
     protected override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      base.OnActionExecuting(filterContext); 

/호텔/인덱스

호텔 컨트롤러

public class HotelController : Base.BoxyController 
    { 
     protected override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      base.OnActionExecuting(filterContext); 

      ViewBag.Title = "SonDakka - Otel"; 
     } 

     public ActionResult Index(string culture) 
     { 

.........

BoxyController

..... .....

엄마 inController

public class MainController : SiteController 
    { 
     protected override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      base.OnActionExecuting(filterContext); 

......

SiteController

[ExitHttpsIfNotRequired] 
    public class SiteController : Controller 
    { 
     public Account Me { get; set; } 

     protected override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 

.......

및이 내 Global.asax에있다

using System; 
using System.Data.Entity; 
using System.IO; 
using System.Linq; 
using System.Web.Mvc; 
using System.Web.Routing; 
using Tourism.Data; 
using Tourism.Data.Mvc.Authorization; 
using Tourism.Data.Mvc.Routing; 

namespace Tourism 
{ 
    public class MvcApplication : System.Web.HttpApplication 
    { 
     public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
     { 
      filters.Add(new HandleErrorAttribute()); 
     } 

     public static void RegisterRoutes(TourismContext db, RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      var cultures = db.Cultures.Select(c => c.Code).ToArray(); 

      routes.MapRoute 
       (
        "Ajax", 
        "{culture}/{controller}/{action}/{id}", 
        new { id = UrlParameter.Optional }, 
        new { culture = new ArrayRouteConstraint(true, cultures), controller = new ArrayRouteConstraint(true, "Ajax") } 
       ).RouteHandler = new GlobalizedRouteHandler(); 

      routes.Add 
       (
        "Page", 
        new GlobalizedPageRoute 
         (
          "{culture}/{path}", 
          null, 
          new RouteValueDictionary { { "culture", new ArrayRouteConstraint(true, cultures) } }, 
          new GlobalizedRouteHandler() 
         ) 
       ); 

      routes.Add 
       (
        "Route", 
        new GlobalizedRoute 
         (
          "{culture}/{path}/{slug}/{id}", 
          new RouteValueDictionary { { "culture", UrlParameter.Optional }, { "path", UrlParameter.Optional }, { "slug", UrlParameter.Optional }, { "id", UrlParameter.Optional } }, 
          new RouteValueDictionary { { "culture", new ArrayRouteConstraint(false, cultures) } }, 
          new GlobalizedRouteHandler() 
         ) 
       ); 
     } 

     protected void Application_Start() 
     { 
      Database.SetInitializer<TourismContext>(null); 

      using (var db = new TourismContext()) 
      { 
       #if !DEBUG 

       if (!db.Database.CompatibleWithModel(true)) 
       { 
        System.Web.HttpRuntime.UnloadAppDomain(); 

        throw new Exception("Veritabanı değişikliği tespit edildi."); 
       } 

       #endif 

       AreaRegistration.RegisterAllAreas(); 

       RegisterGlobalFilters(GlobalFilters.Filters); 

       RegisterRoutes(db, RouteTable.Routes); 
      } 
     } 

     protected void Application_PostAuthenticateRequest() 
     { 
      if (Request.IsAuthenticated) 
      { 
       Context.User = System.Threading.Thread.CurrentPrincipal = 
        new AuthorizationPrincipal(Context.User.Identity); 
      } 
     } 
    } 
} 
+1

"요청한 URL :/Hotel/Thanks"- 오류의 일부입니까? 그렇다면 "감사"라는 방법이 있습니까? –

+0

내가 질문을 업데이 트해야합니다 ... 나는 그것이 약간의 오류를 주려고 노력하는 것보다 오류를주는 색인에 액세스하려고 노력합니다 ... http : // localhost : 9001/Hotel/Index – user1688401

+0

당신의 경로 설정을 게시 할 수 있습니까? 게시물을 수정하여 포함하십시오. –

답변

0

, 당신의 URL 예를 들어, culture 함께해야

http://localhost:9001/en/Hotel/Index 

공지 사항 Hotel 전에 en합니다. 데이터베이스에서 유효한 모든 값이 될 수 있습니다.

3

이것은 Razor 엔진으로 인해 불가능합니다. Hotel 컨트롤러에서 감사 액션을 찾으십시오. 이 같은 호텔 컨트롤러와 감사의 조치를 할 필요가 : 또한

public class HotelController : Base.BoxyController 
{ 

public ActionResult Thanks(string culture) 
{ 
    return View(); 
} 

} 

그리고 당신의 HTML 코드와 함께 호텔 폴더에보기를 만들어야합니다. 당신이 게시 경로 설정을 바탕으로

+0

질문 업데이트 ... 내 질문 실수를 수정했습니다 ... 내 HotelController는 감사와 색인 작업을 가지고 있습니다 ... – user1688401

+0

http : // localhost : 9001/호텔/인덱스 나는 이것을 호출하고 이것은 오류 .... 그리고 HotelController 색인 작업 결과를 가지고 ..... 공개 ActionResult 색인 (문자열 문화) .... – user1688401