【发布时间】:2015-02-10 06:29:48
【问题描述】:
我在我的应用程序中使用 web api。 Web api 2 路由工作正常,但找不到控制器操作路由。
这是我的全局cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
FluentValidationModelValidatorProvider.Configure();
}
}
路由配置
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}",
defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional }
);
}
}
网页接口配置
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultDataApi",
routeTemplate: "Api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
控制器
public class LoginController : Controller
{
public ActionResult Index()
{
return View("~/Views/Default/Login.cshtml");
}
public ActionResult LogOut()
{
var ctx = Request.GetOwinContext();
var authManager = ctx.Authentication;
authManager.SignOut("ApplicationCookie");
return RedirectToAction("index", "home");
}
}
【问题讨论】:
-
我们能看到控制器吗?
-
我添加了控制器。它是一个简单的控制器。默认情况下,当我在没有操作的情况下调用控制器时,它会转到索引操作。但是当在控制器之后提到该操作时,它会显示未找到错误。甚至 Index 操作也显示 not found 错误。
-
我认为问题在于您的网址中的“焦点”部分。它来自哪里?
-
项目网址:localhost/Focus 。我在本地 IIS 中定义了它
标签: asp.net-mvc asp.net-web-api routing asp.net-mvc-routing