首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问RouteTable.Routes.MapHttpRoute?

如何访问RouteTable.Routes.MapHttpRoute?
EN

Stack Overflow用户
提问于 2013-09-03 03:50:32
回答 5查看 12.8K关注 0票数 11

我有一个Web应用程序,我几个月前创建的,我添加了一个Web控制器。我试着使用最近在一次演示中看到的“自动”路由,但我得到的只有404。然后,我尝试使用Global.asax在MapHttpRoute中添加Web控制器的路由,就像我在几个教程中看到的那样。但是,即使在将Imports System.Web.Http添加到文件中之后,该项目也不会识别RouteTable.Routes.MapHttpRoute() --我尝试过添加其他名称空间并确保拥有所有必要的Nuget包,但我仍然无法为Web控制器设置路由。有人推荐从哪里开始吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-02 12:56:25

我找到了这条线,这表明IntelliSense显然在这方面有问题,但是如果您键入如下内容,它将生成并运行:

代码语言:javascript
复制
RouteTable.Routes.MapHttpRoute("MyApi", "api/{controller}")
票数 9
EN

Stack Overflow用户

发布于 2013-11-19 07:53:31

如果有人在C#中有同样的问题,请继续阅读。

我还使用了一个web表单应用程序,并通过Global.asax文件设置路由。对我来说,Intellisense是100%正确的,它不会建立不管。为了使其正常工作,我必须使用指令添加以下内容。

代码语言:javascript
复制
using System.Web.Http;

代码语言:javascript
复制
using System.Web.Routing;

小心而不是偶然使用using System.Web.Http.Routing。这不管用。

票数 17
EN

Stack Overflow用户

发布于 2013-09-19 04:27:16

应该添加对System.Web.Http.WebHost程序集的引用,并确保

代码语言:javascript
复制
using System.Web.Http;

为什么?MapHttpRoute是在两个程序集( System.Web.Http )中定义的。

代码语言:javascript
复制
public static System.Web.Http.Routing.IHttpRoute MapHttpRoute(
    this System.Web.Http.HttpRouteCollection routes, string name, string routeTemplate)

System.Web.Http.HttpRouteCollectionExtensions成员

System.Web.Http.WebHost

代码语言:javascript
复制
public static Route MapHttpRoute(
    this RouteCollection routes, string name, string routeTemplate, object defaults);

第一个是对HttpRouteCollection的扩展

第二个是对RouteCollection的扩展。

因此,当您有一个webforms应用程序时,您的路由是在一个RouteCollection 中定义的,因此您需要 WebHost 版本。

这是因为允许WebApi也在IIS之外托管的体系结构。请参阅托管WebApi

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18583784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档