访问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);
}
}
}
}
基于路由的配置你贴,您的网址应与culture
,例如:
http://localhost:9001/en/Hotel/Index
通知Hotel
前en
。它可以是任何在数据库中有效的值。
因为这是由于剃刀引擎无法在酒店控制器中查找感谢行动。你需要做一个感谢的动作,在酒店控制器这样的:
public class HotelController : Base.BoxyController
{
public ActionResult Thanks(string culture)
{
return View();
}
}
,并且确保创建酒店文件夹中查看与您的HTML代码。
我更新了问题...我编辑了我的问题错误...我的HotelController有感谢和索引操作... – user1688401 2013-04-10 14:30:31
http:// localhost:9001 /酒店/索引我把这种,这给错误....和HotelController具有指标作用的结果.....公众的ActionResult指数(串文化).... – user1688401 2013-04-10 14:33:28
“请求的URL:/酒店/谢谢你” - 这是错误的一部分?如果是的话那么你有没有所谓的“感谢”的方法? – 2013-04-10 12:20:29
我应该更新的问题...我尝试访问索引提示错误比我尝试感谢它还是给了一些错误...的http://本地主机:9001 /酒店/指数 – user1688401 2013-04-10 14:28:15
您可以发布您的路由配置?请编辑您的文章并加入。 – 2013-04-10 15:03:25