【发布时间】:2018-11-14 18:50:20
【问题描述】:
我正在尝试从我的 API 传递一个参数,但它似乎没有接受它。我有一个我想要传递的姓氏(最终将被一个唯一的 id 替换),它最终将路由到个人资料视图或那个人。
这是我的 API 控制器:
public class GetInquiryController : BaseController
{
private GetInquiry manager;
public GetInquiryController(IConfiguration config) : base(config)
{
manager = new GetInquiry(config);
}
[HttpGet]
[Route("api/[controller]")]
public IEnumerable<InquiryModel> Get(string lastName)
{
return manager.GetInquiriesByUser(lastName);
}
}
以及获取姓氏的存储过程的逻辑
public class GetInquiry
{
private readonly IConfiguration configuration;
public GetInquiry(IConfiguration config)
{
configuration = config;
}
public IEnumerable<InquiryModel> GetInquiriesByUser(string lastName)
{
string ApplicationDB = configuration.GetConnectionString("ApplicationDB");
List<InquiryModel> lstinquiry = new List<InquiryModel>();
using (SqlConnection con = new SqlConnection(ApplicationDB))
{
SqlCommand cmd = new SqlCommand("spGetInquiriesByUser", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter lastNameParameter = cmd.Parameters.Add("lastName", SqlDbType.Char, 10);
lastNameParameter.Value = lastName;
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
InquiryModel inquiry = new InquiryModel();
//inquiry.FormID = rdr["FormID"].ToString();
inquiry.firstName = rdr["firstName"].ToString();
inquiry.lastName = rdr["lastName"].ToString();
inquiry.SID = rdr["SID"].ToString();
inquiry.email = rdr["email"].ToString();
inquiry.phone = rdr["phone"].ToString();
inquiry.email = rdr["email"].ToString();
inquiry.employer = rdr["street"].ToString();
inquiry.city = rdr["city"].ToString();
inquiry.state = rdr["state"].ToString();
inquiry.zip = rdr["zip"].ToString();
inquiry.date = rdr["date"].ToString();
inquiry.comment = rdr["comment"].ToString();
lstinquiry.Add(inquiry);
}
con.Close();
}
return lstinquiry;
}
}
}
我正在使用 VUE.js 并调用我的 API
methods: {
editItem(lastName) {
let id = lastName
this.$http.get('http://localhost:61601/api/GetInquiry/', {
id: lastName
}),
我已经尝试在没有 IEnumerable 的情况下使用我的逻辑,我认为在这种情况下不会有所作为。
我想我得到的好处是,
“SqlException:过程或函数'spGetInquiriesByUser'需要参数'@lastName',但未提供”
当我在浏览器中输入我的 API 路由时,但是当我将 lastName 添加到我的路由或 Postman 的末尾时,我得到一个空白页面。
希望这是有道理的,如果我需要提供更多详细信息以及是否有人可以指出正确的方向,请告诉我!
【问题讨论】:
-
你是如何调用 API 的?
-
@Shyju,我刚刚更新了我的问题。我正在使用 VUE.js 并在上面的方法中调用我的 API。
-
您能否确认您实际上是在将 lastName 传递给该方法?也许,使用断点进行调试,这样您就可以首先验证这一点。
标签: asp.net api asp.net-core parameters