如何在MVC4中设置自定义URL

时间:2015-05-05 16:21:02

标签: asp.net-mvc-4 url routes

我需要在C#中使用MVC4 ...

{id} .example.com或

{ID} .example.com的/ {控制器} / {动作}

或者

在localhost中,我该如何测试它。

我的意思是,我可以用以下格式调试此代码......

{id} .localhost:51782或

{ID} .localhost:51782 / {控制器} / {动作}

请完整解释一下。

1 个答案:

答案 0 :(得分:0)

您需要使用"虚拟"处理您的请求URL,例如{user}.example.com,并使用httpContext.RewritePath()在内部更新httpcontext路径。最后,您将拥有两种类型的URI。

  1. 虚拟:{id} .example.com / {controller} / {action}
  2. Real:{id} / {controller} / {action}
  3. 可以在Application_BeginRequest文件

    中的Global.asax.cs内进行处理
    protected void Application_BeginRequest(object sender, EventArgs e)
    {     
       var domainHandler = new DomainsHandler(Context);
       domainHandler.Handle();
    }
    

    DomainHandler的例子:

    public class DomainsHandler
    {
        private readonly HttpContext httpContext;
    
        public DomainsHandler(HttpContext httpContext)
        {
            this.httpContext = httpContext;
        }
    
        public void Handle()
        {
            httpContext.RewritePath(path);
        }
    }
    

    Handle()方法中的重写逻辑取决于你。