我正在尝试将null参数传递给Web api控制器,但我得到的是“ null”而不是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
}
正如我所说,当我调用此方法并为学生的firstname传递一个null参数时。我得到的是“空”,当它传递给数据库存储过程时,它将作为一个值传递。
答案 0 :(得分:1)
这很可能是因为该方法被称为
api/student/GetStudent/xxx/null/something
null,实际上为“ null”。
您可能需要公开
根据您的设置,您也许可以做到
api/student/GetStudent/IdHere?fname=xxx
(名称为null
)api/student/GetStudent/IdHere?lname=xxx
(fname将为null
)(顺便说一句。如果需要id
,我不确定为什么要传递名称部分)
答案 1 :(得分:0)
我想您应该使用以下格式调用您的API:
api / student / GetStudent / studentId =&studentFname =&studentLname =