1
我是web api中的新成员,现在正试图将Web服务转换为web api。但是,我在运行web api时遇到了问题。请帮助解决这个问题。Web Api获取FromUri - ArrayList问题
我已经在模型的类中声明了两个ArrayList(ParameterName & ParameterValue),并且在两个参数中都有值是可选的。
public class PNAWcfData
{
public PNAWcfData()
{
Server = "";
Database = "";
LoginID = "";
Password = "";
CmdTimeout = 30;
Success = false;
}
public string Server { get; set; }
public string Database { get; set; }
//......
public ArrayList ParameterName { get; set; }
public ArrayList ParameterValue { get; set; }
//......
如果我没有把为参数名称&的parameterValue任何价值,那么我能够得到的结果。
如果我将参数名称& ParameterValue的值(工厂& Plant1),那么它仍然是成功的,但不知何故返回什么都没有。它应该返回值。
控制器代码:
namespace PNAWebApi.Controllers
{
public class WebApiController : ApiController
{
public PNAWcfData GetExecProcedureWithOutput([FromUri] PNAWcfData pPNAWcfData)
{
String lsConnStr;
if (CheckConnData(pPNAWcfData.Server, pPNAWcfData.Database, pPNAWcfData.LoginID, pPNAWcfData.Password) == false)
{
pPNAWcfData.Success = false;
pPNAWcfData.ErrMsg = "Database connection Info is not provided!";
}
else
{
lsConnStr = GetConnStr(pPNAWcfData.Server, pPNAWcfData.Database, pPNAWcfData.LoginID, pPNAWcfData.Password);
try
{
if (pPNAWcfData.StoredProcName == "")
{
pPNAWcfData.Success = false;
pPNAWcfData.ErrMsg = "Invalid Stored Procedure!";
}
else
{
using (SqlConnection loConn = new SqlConnection(lsConnStr))
{
using (SqlCommand loCmd = new SqlCommand(pPNAWcfData.StoredProcName, loConn))
{
loCmd.CommandType = System.Data.CommandType.StoredProcedure;
loCmd.CommandTimeout = pPNAWcfData.CmdTimeout;
if (pPNAWcfData.ParameterName != null && pPNAWcfData.ParameterValue != null)
{
for (int i = 0; i < pPNAWcfData.ParameterName.Count; ++i)
{
loCmd.Parameters.AddWithValue(pPNAWcfData.ParameterName[i].ToString(), pPNAWcfData.ParameterValue[i]);
}
}
if (loConn.State =.............
....................
catch (Exception ex)
{
pPNAWcfData.Success = false;
pPNAWcfData.ErrMsg = ex.Message;
}
}
return pPNAWcfData;
}
请分享web api控制器功能 –
@MarcusH,增加控制器代码。 –
您需要从控制器方法返回一些东西,以便返回某些内容。它不会返回任何东西。 –