Tag: 路由

MVC 3路由和操作链接不遵循预期的上下文路由

我正在尝试做一个自定义路由,所以我可以在我的应用程序中使用选定的字符串作为前缀,并根据它进行一些处理。 我遇到的问题是,生成的操作链接不是基于它所存在的URL进行上下文化的。 路线: routes.MapRoute( “TestRoute”, “TEST/{controller}/{action}/{id}”, new { controller = “Space”, action = “Index”, id = UrlParameter.Optional }); routes.MapRoute( “Default”, “{controller}/{action}/{id}”, new { controller = “Space”, action = “Index”, id = UrlParameter.Optional }); 导航到TEST / Space / Index工作,以及Space / Index,但我需要修复的奇怪问题是,通过ActionLink生成的链接不服从它们被加载的上下文,至少对于{controller} / { action} / {id}默认路由。 在TEST / Space / Index列表下加载的页面链接正确,但是当加载/ Space / Index时,它们都引用了调用URL所没有的TEST /路由。 这是默认行为吗? […]

asp.net 4.0中的页面路由(无扩展名url)与PageHandlerFactory(* .aspx)

请解释一下,这两种技术有何不同。 根据我在下面和本文中描述的经验,我假设在应用路由时,不会调用PageHandlerFactory。 我有自己的派生自PageHandlerFactory的类,只要用户访问页面就应该调用它。 当我不通过路由访问页面时,web.config中的这行代码一切都很好 但是当我通过路线访问页面时,例如 RouteTable.Routes.MapPageRoute(“Login”, “login”, “~/Pages/Login.aspx”); 处理程序未应用。 我甚至通过在我的处理程序的构造函数中放置一个断点来测试它,当我通过路径访问页面时它没有被调用。 由于我在我的项目中使用IoC / DI,我想继续使用它将DI注入我的aspx页面,即使我正在使用路由。 我将如何在web.config中管理它? 或者至少在代码中。 编辑:我发现每次加载页面都会引发事件,无论如何。 在Global.asax中它是 Application_PostRequestHandlerExecute 现在,我可以很容易地分辨出如何通过解析URL来调用它。 有没有办法,如何在某些页面上应用我的PageHandlerFactory?

任务异步控制器方法没有命中

所以,我们有一个MVC项目,已经通过不同版本的MVC从1升级到4。 现在我们有一个控制器方法: public async Task IndexAsync() 所以,如果我们去http://somedomain.xyz/WhicheverController 或 http://somedomain.xyz/WhicheverController/Index ,我们将迎来404。 http://somedomain.xyz/WhicheverController/IndexAsync路由到方法就好了。 我们的路由出了什么问题?

静态图像找不到控制器路径? asp.net mvc路由问题?

我有一个图像文件夹存储在〜/ Content / Images / 我通过加载这些图像 最近,图像没有加载,我在错误日志中收到以下错误。 奇怪的是,有些图像加载正常,而其他图像无法加载。 任何人都知道我的路线有什么问题吗? 我错过了/ Content /文件夹的忽略路由吗? 我也为favicon.ico和一堆其他图像文件得到了同样的错误…… — 3/25/2010 2:32:38 AM — System.Web.HttpException: The controller for path ‘/Content/Images/box_bottom.png’ could not be found or it does not implement IController. at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(Type controllerType) at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep […]

我应该将RouteParameter或UrlParameter用于Asp.NET web-api路由吗?

我已经看到两者都被使用了,所以我想知道,他们做同样的事情或不同的事情吗? 如果是后者,有什么区别? 我试着通过浏览视觉工作室MVC 4(rc)web api模板来尝试回答它,但遗憾的是它使用了两者,所以我的困惑仍然存在。 这是模板包含的内容: public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{id}”, defaults: new { id = RouteParameter.Optional } ); routes.MapRoute( name: “Default”, url: “{controller}/{action}/{id}”, defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional } ); } }

如何将查询字符串参数转换为asp.net mvc 4中的路由

我有一个我正在构建的博客系统,我似乎无法让ASP.NET MVC了解我的路线。 我需要的路线是/ blogs / student / firstname-lastname so / blogs / student / john-doe,它们路由到博客区域,学生控制器的索引操作,它采用字符串名称参数。 这是我的路线 routes.MapRoute( name: “StudentBlogs”, url: “blogs/student/{name}”, defaults: new { controller = “Student”, action=”Index”} ); 我的控制器动作 public ActionResult Index(string name) { string[] nameparts = name.Split(new char[]{‘-‘}); string firstName = nameparts[0]; string lastName = nameparts[1]; if (nameparts.Length == 2 && name != […]

WebApi2属性路由inheritance了控制器

我正在尝试使用基本控制器创建基本的REST API,如下所示: 基类: public abstract class WebApiEntityController : ApiController where TEntity : EntityBase { private readonly IRepository _repository; protected WebApiEntityController(IRepository repository) { _repository = repository; } [Route(“”)] [WebApiUnitOfWork] public HttpResponseMessage Get() { return Request.CreateResponse(HttpStatusCode.OK, _repository.ToList()); } [……….] 派生类: [RoutePrefix(“api/TimesheetTask”)] public class TimesheetTaskController : WebApiEntityController { private readonly IRepository _timeSheetTaskRepository; public TimesheetTaskController(IRepository timeSheetTaskRepository) : base(timeSheetTaskRepository) { […]

果园cms路由问题

我创建了一些自定义内容类型,其中包括路径部分,因此我的内容管理员可以编辑项目的slu .. 我没有运气配置一个路由,使我自己的控制器能够为这些项目提供请求。 核心Routable模块中ItemController路径的路径优先级为10.我尝试制作一条利用IRouteConstraint的路由,类似于Blog模块实现我想做的事情,优先级较低但仍然没有运气。 如果我使用/结束我的URL,则会激活我的自定义路由,因为它与我的内容项的路径不匹配。 这不是一个理想的解决方案。 我无法理解为什么它不会在属于Routable模块的路径之前发现我的自定义路由。 非常感谢任何帮助,非常感谢提前。 更新: 这是我的IRouteProvider实现中的GetRoutes方法: public IEnumerable GetRoutes() { return new[] { new RouteDescriptor { Priority = 0, Route = new Route( “Admin/Jugganort/{controller}/{action}/{id}”, new RouteValueDictionary { {“area”, “Jugganort”}, {“controller”, “Area”}, {“action”, “List”} }, new RouteValueDictionary(), new RouteValueDictionary { {“area”, “Jugganort”} }, new MvcRouteHandler()) }, new RouteDescriptor { Priority = 9, […]

为Web Api版本控制自定义MapHttpAttributeRoutes

我正在实现Web API版本控制中的Web API版本控制 。 我的控制器位于2个独立的命名空间中,我使用自定义的SelectController方法根据查询参数选择要使用的版本。 例如 http://myapi/api/values?version=1.0 这一切都很好,但控制器中的某些操作使用Route属性 [Route(“api/values/getNames”)] public HttpResponseMessage Get() { … } 默认使用哪些映射到正确的控制器 config.MapHttpAttributeRoutes(); 在WebApiConfig.cs中 如果我有多个版本的API具有相同的路由,这将不起作用。 我是否能够为config.MapHttpAttributeRoutes()提供自定义实现,以便我可以选择要使用的API的正确版本,或者有更好的方法吗?

ServiceStack是否支持反向路由?

在REST之后,建议API是可发现的,并且应该是相互关联的。 ServiceStack是否支持任何类型的反向路由? 我在ASP MVC中寻找像Url.RouteLink这样的东西。