如何为URL变量映射路由

时间:2020-07-27 20:59:23

标签: c# asp.net .net asp.net-mvc

我正在尝试验证网页上至少有一个输入中包含数据。该页面名为CustomValidator.cshtml,我已经编写了验证此服务器端和客户端的代码。我遇到的问题是,当我单击submit按钮时,它添加了一个变量?Length=19,因此,当单击Submit时,URL从http://localhost:63199/Home/CustomValidator变为http://localhost:63199/Home/CustomValidator?Length=19

我的问题是我如何配置RouteConfig.cs以解决此添加的变量,并且在单击“提交”按钮时不会导致404错误?

这是RouteConfig.cs:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Validator",
            url: "{controller}/CustomValidator/{Length}",
            defaults: new { controller = "Home", action = "CustomValidator"}
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

        
    }
}

使用上述Validator路由的配置,当单击“提交”按钮时,URL更改为*http://localhost:63199/Home/CustomValidator/19

由于我是ASP.NET的新手,所以在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

routes.MapRoute(
    name: "Validator",
    url: "{controller}/CustomValidator/{Length}",
    defaults: new { controller = "Home", action = "CustomValidator", Length= UrlParameter.Optional}
);

将同时为/Home/CustomValidator/19/Home/CustomValidator?Length=19

工作
相关问题