من یک webapi با استفاده از پروسیجر نوشتم، موقع تست در postman خطای 404 رو میده ولی به صورت کلی هیچ خطایی در برنامه وجود نداره و نمیدونم مشکل از کجاست
CREATE Procedure[dbo].[UsersPerdays]
@IdentityNo varchar(11)=NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
UserInfID,
FullName,
PersonnelNo,
IdentityNo,
MobileNo,
EmailAdd,
DepartmentID,
RegDate,
UserName,
[PassWord]
FROM Users
WHERE IdentityNo = @IdentityNo
END
و کد سی شارپم
// GET: api/Users/identityNo
[HttpGet("{identityNo}")]
public async Task<ActionResult<IEnumerable<UserViewModels>>> GetUserPerDay(string identityNo)
{
SqlConnection connection = null;
SqlCommand command = null;
var model = new List<UserViewModels>();
try
{
connection = _context.Database.GetDbConnection() as SqlConnection;
command = new SqlCommand("dbo.UsersPerdays")
{
CommandType = CommandType.StoredProcedure,
Connection = connection
};
command.Parameters.Add(new SqlParameter("@IdentityNo", identityNo));
if (connection.State != ConnectionState.Open)
await connection.OpenAsync();
var reader = await command.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
model.Add(new UserViewModels
{
UserInfId = reader.GetInt32(reader.GetOrdinal("UserInfId")),
FullName = reader.GetString(reader.GetOrdinal("FullName")),
PersonnelNo = reader.GetString(reader.GetOrdinal("PersonnelNo")),
IdentityNo = reader.GetString(reader.GetOrdinal("IdentityNo")),
MobileNo = reader.GetString(reader.GetOrdinal("MobileNo")),
EmailAdd = reader.GetString(reader.GetOrdinal("EmailAdd")),
DepartmentId = reader.GetInt32(reader.GetOrdinal("DepartmentId")),
RegDate = reader.GetDateTime(reader.GetOrdinal("RegDate")),
UserName = reader.GetString(reader.GetOrdinal("UserName")),
PassWord = reader.GetString(reader.GetOrdinal("PassWord"))
});
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (command != null)
{
command.Dispose();
}
if (connection.State != ConnectionState.Closed)
{
connection.Close();
connection.Dispose();
}
}
return Ok(model);
}
چه جوری متوجه شوم که خطا به چه دلیل بروز داده
*ویرایش*
Url که شما داخل Postman نوشتید به این صورت هست،
https://localhost:44318/api/Users/{identityNo}
اما شما در بالای اکشن متد خودتون از Attribute زیر استفاده کردید
[HttpGet("{identityNo}")]
و وقتی از این ویژگی استفاده می کنید مسیر دسترسی به اکشن رو تغییر می دید ولی احتمالا شما در کنترلر خودتون یک اکشن دیگه با همین مسیر دارید. بنابرین بهتره به اکشن خودتون یک نام هم بدید. (اگر بقیه اکشن ها مشخص بود بهتر میشد این مورد رو تشخیص داد)
[HttpGet("{identityNo}",Name = "YourName")]
نحوه صدا زدن هم دقیقا همونیه که نوشتید توی Postman
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
112
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
216
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
112
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|