访问asp.net的MVC控制器的ActionResult

问题描述:

我要访问控制器操作的结果(我controlelr是HotelController行动是指数)访问asp.net的MVC控制器的ActionResult

http://localhost:9001/Hotel/Index)它提供了以下错误

的资源不能被发现。

说明:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。请检查以下网址并确保它拼写正确。

请求的URL:/酒店/指数

酒店控制器

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

      ViewBag.Title = "SonDakka - Otel"; 
     } 

     public ActionResult Index(string culture) 
     { 

.........

BoxyController

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

..... .....

马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:/酒店/谢谢你” - 这是错误的一部分?如果是的话那么你有没有所谓的“感谢”的方法? – 2013-04-10 12:20:29

+0

我应该更新的问题...我尝试访问索引提示错误比我尝试感谢它还是给了一些错误...的http://本地主机:9001 /酒店/指数 – user1688401 2013-04-10 14:28:15

+0

您可以发布您的路由配置?请编辑您的文章并加入。 – 2013-04-10 15:03:25

基于路由的配置你贴,您的网址应与culture,例如:

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

通知Hotelen。它可以是任何在数据库中有效的值。

因为这是由于剃刀引擎无法在酒店控制器中查找感谢行动。你需要做一个感谢的动作,在酒店控制器这样的:

public class HotelController : Base.BoxyController 
{ 

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

} 

,并且确保创建酒店文件夹中查看与您的HTML代码。

+0

我更新了问题...我编辑了我的问题错误...我的HotelController有感谢和索引操作... – user1688401 2013-04-10 14:30:31

+0

http:// localhost:9001 /酒店/索引我把这种,这给错误....和HotelController具有指标作用的结果.....公众的ActionResult指数(串文化).... – user1688401 2013-04-10 14:33:28