首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >URL处理错误的ASP.Net参数

URL处理错误的ASP.Net参数
EN

Stack Overflow用户
提问于 2008-10-25 12:47:20
回答 4查看 5.9K关注 0票数 16

处理访问者构建自己的URL并将我们期望的ID替换为他们喜欢的任何东西的最佳方法是什么?

例如:

ASP.Net MVC - handling bad URL parameters

但是用户也可以很容易地将URL替换为:

https://stackoverflow.com/questions/foo

我已经想过让每个控制器函数参数都成为一个String,并对它们使用Integer.TryParse() -如果通过了,那么我就有了一个ID并可以继续,否则我可以将用户重定向到未知/未找到或索引视图。

Stack Overflow很好地处理了它,我也想这么做--你是怎么做的,或者你有什么建议?

EN

回答 4

Stack Overflow用户

发布于 2008-10-26 00:08:19

这里有一些有用的信息,可能会有所帮助。如果你有一个动作方法

代码语言:javascript
复制
public ActionResult Edit(int? id)
{}

然后如果有人输入

代码语言:javascript
复制
/Home/Edit/23

参数id将为23。但是,如果有人键入

代码语言:javascript
复制
/Home/Edit/Junk

那么id将为null,这很酷。我以为它会抛出一个强制转换错误之类的东西。这意味着如果id不是空值,那么它就是一个有效的整数,并且可以传递给你的服务,等等,以便进行数据库交互。

希望这能为你提供一些我在测试时发现的信息。

票数 5
EN

Stack Overflow用户

发布于 2008-10-25 13:13:50

在ASP.NET MVC中,您可以定义一个实现IActionFilter接口的过滤器。您将能够使用此属性装饰您的操作,以便它将在您的操作上、操作之前或操作之后执行。

在您的例子中,您将把它定义为在您的操作之前执行。这样,如果传递的参数中有错误,您可以取消它。这里的主要好处是,你只需编写一次检查传递的参数的代码(即,你在过滤器中定义它),并在你的控制器操作中使用它。

有关MVC filter的更多信息,请单击此处:http://haacked.com/archive/2008/08/14/aspnetmvc-filters.aspx

票数 4
EN

Stack Overflow用户

发布于 2008-10-25 13:30:07

可以将约束指定为正则表达式,也可以定义自定义约束。看看这篇博客文章,了解更多信息:

http://weblogs.asp.net/stephenwalther/archive/2008/08/06/asp-net-mvc-tip-30-create-custom-route-constraints.aspx

你仍然需要处理id 43243没有映射到任何可以作为IActionFilter或者直接在你的控制器中处理的东西的情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/236349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档