【发布时间】:2022-01-22 19:34:27
【问题描述】:
如果我有这样的控制器方法:
public ActionResult<Item> GetItem(RequestHeaderBase headers, RequestObject request)
我可以总是假设 headers 对象和 request 对象将被实例化(不为 null)吗?
(无论答案如何,我都希望有任何链接可以深入阅读有关其工作原理的任何链接)
这是我的意思的一个例子
我在这里调用请求:https://localhost:44360/weatherforecast,尽管我没有提供查询字符串,但您可以看到输入对象已被实例化。
在这两种情况下,你可以通过我的调试看到,无论实例化什么对象,即使我没有在请求中提供任何数据。
现在我在我们的一些应用程序中看到了检查此数据是否为空的代码,我认为此代码无关紧要,因此可以删除。
【问题讨论】:
-
这听起来像是 XY 问题。你想达到什么目的?如果您尝试访问请求的属性,请使用
HttpContext.Request,只要控制器调用来自 HTTP 请求,它就会被填充。 (可以从应用程序代码中调用控制器逻辑,但不推荐)。 -
不是特别有问题,我看到一些代码检查这些参数之一是否为空,例如 if(request == null)... 但据我了解,来自任何来源的 http 请求将始终在控制器方法中实例化,只是想确认我是正确的。
标签: c# asp.net-core .net-core