我有一个公开可用的控制器(该操作不能隐藏在任何安全属性下)。控制器也有一个公开可用的操作。
以下是控制器的示例结构:
public SomeController : Controller {
[HttpGet]
public ActionResult show(int id){
}
}
该操作有一个id
必填字段。id
但是,当有人在没有 required 的情况下输入格式错误的 URL 时(或者当搜索引擎机器人点击带有 required 的 URL 时) ,会引发一个不必要的错误,该错误会添加到日志中id
。
处理此解决方案的理想解决方案应该是什么。
我想到的可能的解决方案是:
- 将 id 设置为 Nullable (int?id) 并通过将调用者重定向到显示适当错误的其他页面来显式处理没有值的情况
- 显式发送 404 错误
有没有使用属性的通用方法来做到这一点?
PS:(具体来说)我的意思是写 if else 条件来处理每个控制器的这种情况。
我将不胜感激任何正确方向的提示。