Asp.net mvc MVC路线参数

Asp.net mvc MVC路线参数,asp.net-mvc,routing,asp.net-mvc-routing,Asp.net Mvc,Routing,Asp.net Mvc Routing,如果我有这条路线: routes.MapRoute( "BlogRoute", // Route name "blog/{action}", // URL with parameters new { controller = "Blog", action = "Index", id="abc" } // Parameter defaults ); 。。。并在控制器中使

如果我有这条路线:

routes.MapRoute(
                 "BlogRoute", // Route name
                 "blog/{action}", // URL with parameters
                 new { controller = "Blog", action = "Index", id="abc" } // Parameter defaults
             );
。。。并在控制器中使用此索引方法:

public ActionResult Index(string id)
        {
            return View((object)id);
        }
是否有人可以将id参数从“abc”更改为其他参数?例如,通过将?id=somethingElse附加到URL?我试过了,但没有改变。那么,是否可以保证在索引方法中始终获得“abc”

基本上,当选择一条路由时,我需要发送一个硬编码字符串,我不希望用户能够通过URL或任何其他机制更改此字符串。这就像“abc”是一个密码(不是,只是假设它是)。只有开发人员可以通过编辑Global.asax.cs来设置此字符串


可能吗?

您可以使用正则表达式/abc/

为id参数添加约束。如果我这样做:/blog?id=123,我在Index方法上得到的参数仍然是“abc”而不是“123”。我想知道我是否真的需要约束?我声明路线的方式是否已经保证了我将始终具有id“abc”?我没有注意到路线定义中缺少{id}。在这种情况下,你可以忽略我之前的评论。我想你应该对这条路线没意见。谢谢。我注意到我也可以使用数据令牌来满足我的需要。