Я создаю новый слой WebAPI для устаревшего приложения ASP.NET WebForms. Я пытаюсь заставить параметры моего запроса использоваться с конечной точкой, и я не могу до конца жизни понять, почему, когда я делаю оценку переменной аргумента, чтобы проверить, если first_name.Equals(null)
, почему это не правильнопомечается как true и вместо этого выдает следующее исключение:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
first_name was null.
Исключение выдается, когда это запрос:
http://localhost/api/v1/person?first_name=
Исключение составляет НЕ , выдается, когда этоrequest:
http://localhost/api/v1/person?first_name=John
Я получаю, что по умолчанию значение, переданное конечной точке, будет нулевым, но даже при назначении значения по умолчанию оно все равно не будет помечено null
как TRUE
.
Вот моя конечная точка:
[HttpGet]
public void Get(string first_name = "", string last_name = "")
{
string firstName = String.Empty;
if (!first_name.Equals(null)) // Here is where the ObjectReferenceNull exception is thrown
firstName = first_name;
...
ApiResponse.Json(new JsonResource(data, links));
}
Вот моя информация о маршрутизации в Global.ascx.cs:
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
Что я пробовал:
Пока ничего не получалось.