.net - ASP.NET MVC-MapRoute与route.Add(和404s)

标签 .net asp.net-mvc url-routing asp.net-mvc-routing

我刚刚开始使用ASP.NET MVC。

MapRoute和routes.Add有什么区别?
我应该只使用MapRoute吗?我可以映射多条路线吗?哪个“ map ”优先...您最先调用或最后一个?

我希望能够为用户做类似于StackOverflow的操作。
但我希望该网址适合这种模式:
“用户/ {域} / {用户名}”将被路由到UserController

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

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

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

这是我正在使用的代码:
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",                                              
            "{controller}/{action}/{id}",                           
            new { controller = "Home", action = "Index", id = "" }  
        );

    }

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

最佳答案

您的用户 Controller 应具有

public class UserController : Controller {
    public ActionResult Index(string domain, string username) { return View(); }
}

用户 Controller 的Index方法上的两个变量从路由中获取。

关于.net - ASP.NET MVC-MapRoute与route.Add(和404s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513663/

相关文章:

c# - 将 TextBox 的值填充到特定的 Textbox

.net - 需要获取程序文件夹,在 64 位机器上运行 32 位应用程序吗?

asp.net-mvc - 如何阻止来自 web.config 中特定域的请求?

javascript - 将 Html.EditorFor 替换为 Bootstrap Toggle

scheme - Racket URL 调度

java - 带有单元测试的 Xml Dom 库

c# - 在有显式迁移挂起时添加迁移

asp.net-mvc - 如何在数据库实体的子模型上使用自定义验证属性?

Yii 网址管理器。路径格式的网址

asp.net - 路由 HTTP 错误 404.0 0x80070002