[英]how to store the id in environment variable from post operation in postman?
我無法在郵遞員TEST中設置環境變量。 我的響應正文在執行POST操作后僅顯示1。 在響應頭中,我得到Transfer-Encoding→分塊,Content-Type→application / json; charset = utf-8等等...我不是完全在傳輸編碼方面造成問題嗎?
public JsonResult CreateCustomer([FromBody]Customer customer)
{
try
{
BaseDataAccess baseDataAccess = new BaseDataAccess(_config["ConnectionStrings:DefaultConnection"]);
List<DbParameter> parametersList = new List<DbParameter>();
parametersList.Add(baseDataAccess.GetParameter("StatementType", "Insert"));
parametersList.Add(baseDataAccess.GetParameter("Name", customer.Name));
parametersList.Add(baseDataAccess.GetParameter("Email", customer.Email));
parametersList.Add(baseDataAccess.GetParameter("PrimaryPhone", customer.PrimaryPhone));
parametersList.Add(baseDataAccess.GetParameter("AlternatePhone", customer.AlternatePhone));
parametersList.Add(baseDataAccess.GetParameter("Address1", customer.Address1));
parametersList.Add(baseDataAccess.GetParameter("Address2", customer.Address2));
parametersList.Add(baseDataAccess.GetParameter("Address3", customer.Address3));
parametersList.Add(baseDataAccess.GetParameter("City", customer.City));
parametersList.Add(baseDataAccess.GetParameter("State", customer.State));
parametersList.Add(baseDataAccess.GetParameter("Country", customer.Country));
parametersList.Add(baseDataAccess.GetParameter("Zip", customer.Zip));
return Json(baseDataAccess.ExecuteNonQuery("[dbo].[CreateCustomer]", parametersList, CommandType.StoredProcedure));
}
catch (Exception e)
{
throw e;
}
}
我懷疑這個問題涉及一些誤解。 ExecuteNonQuery
的結果與存儲過程的輸出代碼或結果相混淆。 return Json(..)
傳遞了一個數字,但是Javascript代碼期望響應包含一個對象。 Environment variable
似乎與問題無關。
Javascript代碼:
var jsonData = JSON.parse(responseBody);
...
.... jsonData.customerId);
期望響應包含一個JSON字符串,其中包含一個帶有customerId
屬性的對象。
不過,服務器代碼僅返回行數:
return Json(baseDataAccess.ExecuteNonQuery("[dbo].[CreateCustomer]", parametersList, CommandType.StoredProcedure));
ExecuteNonQuery返回受查詢或存儲過程影響的行數。 插入一行將返回1。它不會返回存儲過程的結果或輸出參數。
這意味着服務器將有效地執行以下操作:
return Json(1);
響應將包含一個普通的1
。
要返回帶有customerId
的JSON對象,代碼應更改為:
var newItem=new {customerId=thatNewId;};
return Json(newItem);
這將返回Java期望的{'customerId: 1234}
。
在不知道存儲過程做什么的情況下,人們只能猜測如何提取新ID。 C#代碼中沒有輸出參數,因此我假設ID作為單個結果返回,例如:
SELECT @@IDENTITY;
該網絡應用應使用ExecuteScalar :
var thatNewId = baseDataAccess.ExecuteScalar("[dbo].[CreateCustomer]",
parametersList,
CommandType.StoredProcedure);
全部放在一起:
var thatNewId = baseDataAccess.ExecuteScalar("[dbo].[CreateCustomer]",
parametersList,
CommandType.StoredProcedure);
var newItem=new {customerId=thatNewId;};
return Json(newItem);
我只是假設POSTMAN代碼是正確的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.