处理访问者构建自己的URL的最佳方式是什么,并将任何他们喜欢的东西替换为我们期望的ID?
例如:
ASP.Net MVC – handling bad URL parameters
但用户可以轻松地替换URL:
http://stackoverflow.com/questions/foo
我想到每个Controller Function参数都是一个String,并且使用Integer.TryParse(),如果这样通过,那么我有一个ID并且可以继续,否则我可以将用户重定向到未知/未找到或索引视图。
堆栈溢出处理它很好,我也想 – 你怎么做,或者你会建议什么?
解决方法
这是一个像你的路线的例子,对数字有一个限制:
routes.MapRoute( "Question","questions/{questionID}",new { controller = "StackOverflow",action = "Question" },new { questionID = @"\d+" } //Regex constraint specifying that it must be a number. );
这里我们设置questionID至少有一个数字。这也将阻止任何包含整数的url,也可以阻止对可空的int的需要。
注意:这不考虑大于Int32(-2147483647 – 2147483647)范围的数字。我将此作为练习,让用户解决。 原文链接:https://www.f2er.com/aspnet/252282.html