【发布时间】:2016-01-21 08:17:09
【问题描述】:
我有 2 个控制器,1 个是 MVC,1 个是 Web Api 2。 后者似乎可以正常工作,但只有当我写完整地址时,第一个才能显示 HTML 页面。
这是我的简单RouteConfig.cs
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new {
controller = "Base",
action = "Main"
}
);
)
我们以默认为例,控制器为Base,动作为Main,代码直截了当
public ActionResult Main() {
return View();
}
http://localhost/miApps --> /View/Base/Main 的工作和显示内容 http://localhost/miApps/Base --> /View/Base/Main 的工作和显示内容 http://localhost/miApps/Base/Main --> 不行,错误是
{"Message":"未找到与请求 URI 'http://localhost/miApps/Base/Main'匹配的 HTTP 资源。","MessageDetail":"未找到与名为 'Base' 的控制器匹配的类型。"}
我也发WebApiConfig.cs,也许有互动?
config.MapHttpAttributeRoutes();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}",
defaults: new {
//id = RouteParameter.Optional
}
);
}
【问题讨论】:
-
您在错误中提到的网址与您发布的不起作用的网址不同。你能用正确的细节更新问题吗?
-
将您的路线更改为 -
url: "miApps/{controller}/{action}"为您的default路线,如果可行,请告诉我。 -
它不起作用。
miApps是 IIS 应用程序的名称,不应该包含在任何路由配置文件中,对吧? -
是的,你不应该。我认为这是您想要向端点发出请求的方式。所以在这种情况下,我认为您的路线没有任何问题,您的代码中可能还有其他问题。
标签: c# asp.net-mvc routing