C# 无法在请求中使用整数类型
我正在尝试设计一个凭证检索过程。我尝试使用了C# 无法在请求中使用整数类型,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我正在尝试设计一个凭证检索过程。我尝试使用了HttpRequestBase。然而,我不能再往前走了HttpRequestBase只接受字符串,但我必须传递int。数据库有“EmailID as string”和“TaxID as int”以下是我遇到问题的两种情况 情景1: string EmailID = Request["EmailID"]; int TaxID = Request[TaxID]; //Tax ID is having following errors //Error CS1
HttpRequestBase
。然而,我不能再往前走了HttpRequestBase
只接受字符串,但我必须传递int。数据库有“EmailID as string”和“TaxID as int”以下是我遇到问题的两种情况
情景1:
string EmailID = Request["EmailID"];
int TaxID = Request[TaxID];
//Tax ID is having following errors
//Error CS1503: Argument 1: cannot convert from 'int' to 'string'
//Error CS0165: Use of unassigned local variable 'TaxID'
SUPRTestingDBEntities2 dbcontrol = new SUPRTestingDBEntities2();
var userAuth = (from data in dbcontrol.SUPRTesting where data.EmailID == EmailID
&& data.TaxID == TaxID
select data).FirstOrDefault();
if (userAuth != null)
{
Session["EmailID"] = userAuth.EmailID;
Session["LoginID"] = userAuth.LoginID;
return RedirectToAction("LIDAuthentication", "Corporation");
}
else if (userAuth == null)
{
return View();
}
场景2,这里我将TaxID
type更改为string(第2行),这会在第5行抛出错误:
string EmailID = Request["EmailID"];
string TaxID = Request[TaxID];
SUPRTestingDBEntities2 dbcontrol = new SUPRTestingDBEntities2();
var userAuth = (from data in dbcontrol.SUPRTesting where data.EmailID == EmailID
&& data.TaxID == TaxID
/*Error CS0019: Operator '==' cannot be applied to operands of type 'int' and 'string'*/
select data).FirstOrDefault();
if (userAuth != null)
{
Session["EmailID"] = userAuth.EmailID;
Session["LoginID"] = userAuth.LoginID;
return RedirectToAction("LIDAuthentication", "Corporation");
}
else if (userAuth == null)
{
return View();
}
有人能帮我吗。您需要的是将您的
TaxId
请求转换为int,然后您的场景1应该可以正常工作,如下所示:
int TaxID = Convert.ToInt32(Request[TaxID]);
但是,我会这样做以更好地处理所有可能的错误:
string taxID = Request["TaxID"];
if (!String.IsNullOrEmpty(taxID) && int.TryParse(taxID, out int TaxID))
{
//Your code here, use TaxID in your query
}
您需要的是将您的
TaxId
请求转换为int,然后场景1应该可以正常工作,如下所示:
int TaxID = Convert.ToInt32(Request[TaxID]);
但是,我会这样做以更好地处理所有可能的错误:
string taxID = Request["TaxID"];
if (!String.IsNullOrEmpty(taxID) && int.TryParse(taxID, out int TaxID))
{
//Your code here, use TaxID in your query
}
除非我误解了您的意图,否则您根本不需要使用
Request
。您可以通过向控制器方法添加参数来获得此信息:
public ActionResult MyMethod(string EmailID, int TaxID) // query string parameters moved to method parameters
{
SUPRTestingDBEntities2 dbcontrol = new SUPRTestingDBEntities2();
var userAuth = (from data in dbcontrol.SUPRTesting
where data.EmailID == EmailID
&& data.TaxID == TaxID
select data).FirstOrDefault();
if (userAuth != null)
{
Session["EmailID"] = userAuth.EmailID;
Session["LoginID"] = userAuth.LoginID;
return RedirectToAction("LIDAuthentication", "Corporation");
}
else if (userAuth == null)
{
return View();
}
}
除非我误解了您的意图,否则您根本不需要使用
Request
。您可以通过向控制器方法添加参数来获得此信息:
public ActionResult MyMethod(string EmailID, int TaxID) // query string parameters moved to method parameters
{
SUPRTestingDBEntities2 dbcontrol = new SUPRTestingDBEntities2();
var userAuth = (from data in dbcontrol.SUPRTesting
where data.EmailID == EmailID
&& data.TaxID == TaxID
select data).FirstOrDefault();
if (userAuth != null)
{
Session["EmailID"] = userAuth.EmailID;
Session["LoginID"] = userAuth.LoginID;
return RedirectToAction("LIDAuthentication", "Corporation");
}
else if (userAuth == null)
{
return View();
}
}