簡體   English   中英

接收“null”而不是 null

[英]Receiving “null” instead of null

I'm trying to pass a null argument to a web api controller but I'm getting "null" instead of null.

例如:我的路線應該是這樣的

[Route("api/student/GetStudent/{studentId}/{studentFname}/{studentLname}/")]

public Student GetStudent(int studentId,string studentFname,string studentLname) 
{
         //Code 
}

請注意,至少用戶應該插入名字或姓氏,並且不需要兩者都有

  • 在上面的代碼中,名字和姓氏都是必需的,但我不想要這個。 所以我把我的代碼改成這樣

    [Route("api/student/GetStudent/{studentId}/{studentFname?}/{studentLname?}/")] public Student GetStudent(int studentId,string studentFname,string studentLname) { //Code }

正如我所說,當我調用此方法並為學生名字傳遞 null 參數時。 我得到“null”,當它傳遞給數據庫存儲過程時,它將作為一個值傳遞。

這很可能是因為該方法被稱為

api/student/GetStudent/xxx/null/something

null 在這種情況下是提供的,實際上是“null”。

你可能需要暴露

  • api/學生/GetStudentByLastName/{lname}
  • api/student/GetStudentByFirstName/{fname}
  • api/學生/GetStudentById/{id}

根據您的設置,您可以執行

  • api/student/GetStudent/IdHere?fname=xxx (lname 將是null )
  • api/student/GetStudent/IdHere?lname=xxx (fname 將是null )

(順便說一句。如果需要id ,我不確定你為什么要傳遞名稱部分)

我想您應該使用以下格式調用您的 API:

api/student/GetStudent/studentId=&studentFname=&studentLname=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM