首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC控制器的属性路由不能解析

MVC控制器的属性路由不能解析
EN

Stack Overflow用户
提问于 2013-10-01 12:32:08
回答 2查看 4.1K关注 0票数 3

我正在使用一个基于OWIN的命令行Self-Host应用程序,新的属性路由非常适合我的Web API控制器。但是,它们似乎不适用于我的常规MVC控制器。

在我的start方法中,我尝试了使用路由模板的旧方法来映射路由,我也尝试了使用属性routes来实现。无论哪种方式,当我尝试点击这些路线时,我都会得到404。

在我的开始代码中,我调用了IAppBuilder.UseWebApi(...)在Owin.WebApiAppBuilderExtensions类中定义了扩展方法,但我没有看到类似于UseMvc(...)的等价物。它们能共存吗?我是不是漏掉了什么明显的东西?

下面是我的开始代码:

代码语言:javascript
运行
复制
var config = new HttpConfiguration();
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(Startup.OAuthOptions.AuthenticationType));
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.MapHttpAttributeRoutes();

app.UseCookieAuthentication(CookieOptions);
app.UseExternalSignInCookie(CookieAuthenticationDefaults.ExternalAuthenticationType);
app.UseOAuthBearerTokens(OAuthOptions, ExternalOAuthAuthenticationType);
app.UseFacebookAuthentication(appId: "12345", appSecret: "abcdef");
app.UseWebApi(config);

下面是我的普通的MVC类:

代码语言:javascript
运行
复制
[RoutePrefix("Home")]
public class HomeController : Controller
{
    [HttpGet("Index")]
    public ActionResult Index()
    {
        return Content("Hello world!", "text/plain");
    }
}

当我在我的应用上点击/Home/Index时,我得到了404。

EN

回答 2

Stack Overflow用户

发布于 2013-10-13 19:58:24

目前,ASP.NET MVC不能在OWIN上运行。Web是最近构建的,并且考虑到了这种灵活性,因此它与System.Web解耦,特别是HttpContext,这使得它可以在OWIN上运行。

在OWIN上运行的一些替代方案是FubuMVCNancySimple.Web

David Fowler已经在这方面做了一些工作,并且有一个在OWIN上运行的MVC的工作原型,但是代码还没有公开,也没有关于它是否会很快发布的消息。

票数 4
EN

Stack Overflow用户

发布于 2013-10-02 04:13:22

请确保您已经安装了AttributeRouting的NuGet包WebApp API。

类似的问题:MVC Attribute Routing Not Working

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

https://stackoverflow.com/questions/19108024

复制
相关文章

相似问题

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