加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC – MapRoute与routes.Add(和404s)

发布时间:2020-12-16 00:48:20 所属栏目:asp.Net 来源:网络整理
导读:我刚刚开始使用ASP.NET MVC。 MapRoute和routes.Add有什么区别? 我应该使用MapRoute吗?可以映射多条路线吗?哪个“地图”优先…你叫做第一个还是最后一个? 我想要能够为用户做类似StackOverflow的事情。 但是我希望URL适合此模式: “User / {domain} / {
我刚刚开始使用ASP.NET MVC。

MapRoute和routes.Add有什么区别?
我应该使用MapRoute吗?可以映射多条路线吗?哪个“地图”优先…你叫做第一个还是最后一个?

我想要能够为用户做类似StackOverflow的事情。
但是我希望URL适合此模式:
“User / {domain} / {username}”将路由到UserController

并且对于所有其他请求来执行典型的ASP.NET MVC路由。例如:

routes.MapRoute(
            "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = "" }  
        );

更新:
使用URL:http://localhost:3962/User/MYDOMAIN/BTYNDALL
我收到错误:HTTP 404.您正在寻找的资源(或其一个依赖关系)可能已被删除,名称已更改或暂时不可用。

这是我使用的代码:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "User","User/{domain}/{username}",new { controller = "User",action = "Index" }      
        );

        routes.MapRoute(
            "Default",id = "" }  
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
    }
}

解决方法

您的用户控制器应该有
public class UserController : Controller {
    public ActionResult Index(string domain,string username) { return View(); }
}

用户控制器的Index方法中的两个变量从路由中获取。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读