Tag: url routing

编码urlC#

所以我有一个看起来像这样的URL http://www.test.com/folder1/id=3 但基本上当他们点击按钮时,在URL栏中我想显示与该id相关联的值的名称,例如id = 3是一个名为“Rollex”的手表 所以我想要读取URL http>//www.test.com/folder1/Rollex 先感谢您

禁用Web窗体项目中的自动友好URL

我在Visual Studio 2013中创建了一个C#Web表单项目。当我运行sample.aspx页面时,该页面自动使用/sample友好URL路由。 我想手动处理路由,而不是让.NET自动完成。 如何禁用友好的URLfunction。 我不希望它通过NuGet卸载,但只在代码中禁用。

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 /路由。 这是默认行为吗? […]

MVC忽略并处理Web API路由

我无法弄清楚为什么MVC而不是Web API正在处理路由。 整个路由配置如下: configuration.Routes.MapHttpRoute ( name: “AdminControllers.TicketingController”, routeTemplate: “api/company/tickets”, defaults: new { controller = “Ticketing”, id = RouteParameter.Optional, action = “GetTickets” } ); API控制器看起来像这样: public sealed class TicketingController : ApiController { [HttpGet] public HttpResponseMessage GetTickets() { return ControllerContext.Request.CreateResponse(HttpStatusCode.OK); } } 我对/api/company/tickets执行HTTP / GET请求,我收到以下错误: 未找到路径“/ api / company / tickets”的控制器或未实现IController。 exception的堆栈跟踪指向ASP.NET MVC(不是Web API): System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type […]

asp.net使用URL路由时用户控件的多个Page_Load事件

我最近建立了一个ASP.net网站(不使用MVC.net)来使用URL路由(更多关于下面的代码) – 当在网站上使用用户控件时(即我创建了一个“菜单”用户控件到保持菜单信息)当URL有多个传递的变量时,该控件的page_load事件将触发两次。 即 pageName / VAR1:只会触发一次page_load事件。 而 pageName / VAR1 / VAR2:将触发page_load事件两次。 *最后添加多个额外的VAR仍然只会触发page_load事件两次*。 下面是文件中的代码snippits,第一个是MapPageRoute,位于Global.asax中: // Register a route for the Example page, with the NodeID and also the Test123 variables allowed. // This demonstrates how to have several items linked with the page routes. routes.MapPageRoute( “Multiple Data Example”, // Route name “Example/{NodeID}/{test123}/{variable}”, // Route […]

如何通过ASP.NET路由路由图像?

我想创建一个动态缩略图大小调整器,以便您可以使用以下URL来获取已resize的图像: http://server/images/image.jpg?width=320&height=240 我尝试设置这样的路线: routes.MapRoute(null, “{filename}”, new { controller = “Image”, action = “Resize” }); 但是,如果文件存在于URL,则ASP.NET将绕过路由并仅返回文件。 如何强制ASP.NET路由图像而不是返回磁盘上的内容?

在IIS 7托管环境中破解我的头脑:ASP.NET

我正在尝试使用System.Web.Routing实现ASP.NET URL路由。 这似乎在我的本地主机上正常工作,但是当我上线时,我收到IIS 7的404错误(找不到文件)。 仅供参考,主机使用Windows Server 2008 IIS7。 我认为这在处理路由机制方面有所不同。 但我无法弄清楚到底发生了什么。 以下是我到目前为止所做的设置和更改,以使其工作,并给自己一些信誉,它在本地工作绝对正常。 Web.Config设置 然后我有一个system.webserver部分,它具有以下标记 然后在Application_Start部分中,我定义了一条路由,如下所示: void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); } void RegisterRoutes(RouteCollection routes) { routes.Add( “MyRoute”, new Route(“ProductDetail/{ProductId}/{ProductName}”, new MyRouteHandler(“~/ProductDetail.aspx”))); } 最后MyRouteHandler看起来如下: public IHttpHandler GetHttpHandler(RequestContext requestContext) { var display = (Page)BuildManager.CreateInstanceFromVirtualPath( _virtualPath, typeof(Page)); HttpContext.Current.Items[“ProductId”] = requestContext.RouteData.Values[“Product”]; return display; } 在路由页面上,我抓住产品ID如下 ProductId = (int)HttpContext.Current.Items[“Product”]; […]

在Webforms中生成带URL路由的URL

我知道在MVC框架中,你有Html类来创建URL: Html.ActionLink(“About us”, “about”, “home”); 但是如果你想在Webforms中生成Urls呢? 我没有找到关于使用Webforms生成URL的详细信息。 例如,如果我正在生成这样的路线: Route r = new Route(“{country}/{lang}/articles/{id}/{title}”, new ArticleRouteHandler(“~/Forms/Article.aspx”)); Route r2 = new Route(“{country}/{lang}/articles/”, new ArticleRouteHandler(“~/Forms/ArticlesList.aspx”)); Routes.Add(r); Routes.Add(r2); 如何使用路由表数据生成URL。 如何根据我的路线生成URL? 例如。 / ca /​​ en / articles / 123 /文章标题没有

动态更改ASP.NET MVC路由

通常,当我查看ASP.Net MVC应用程序时,Route表会在启动时配置,并且不会在以后触及。 我有几个问题,但它们彼此密切相关: 是否可以在运行时更改路由表? 我应该/应该如何避免线程问题? 是否有更好的方法来提供动态URL? 我知道ID等可以出现在URL中,但无法看到它如何适用于我想要实现的目标。 即使我定义了默认控制器/操作路由,我怎么能避免这种情况,默认路由不适用于特定组合,例如“注释”控制器上的“发布”操作无法通过默认路由获得? 背景:评论垃圾邮件发送者通常会从网站上获取发布url,然后再也无需通过网站来进行自动垃圾邮件发送。 如果我经常将我的postURL修改为一些随机的URL,垃圾邮件发送者必须返回该站点并找到正确的postURL以尝试发送垃圾邮件。 如果该URL不断变化,我认为这可能会使垃圾邮件发送者的工作更加乏味,这通常意味着他们放弃了受影响的URL。

ASP.NET MVC3将REST服务路由到控制器

我想以下列方式路由REST服务URL: /User/Rest/ -> UserRestController.Index() /User/Rest/Get -> UserRestController.Get() /User/ -> UserController.Index() /User/Get -> UserController.Get() 所以基本上我在url中为Rest做了一个硬编码的例外。 我对MVC路由不太熟悉。 那么实现这一目标的好方法是什么?