Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ASP.NET中的URL获取特定值_C#_Asp.net_String - Fatal编程技术网

C# 如何从ASP.NET中的URL获取特定值

C# 如何从ASP.NET中的URL获取特定值,c#,asp.net,string,C#,Asp.net,String,如何从以下URL获取特定值我只需要获取3个值 http://earnprofitclickint.com/UserWorking/Successfull.aspx?lr_paidto=U9925362&lr_amnt=2.00&lr_currency=LRUSD&lr_store=http%3A%2F%2Fwww.earnprofitclickint.com&lr_merchant_ref=&lr_paidby=U3563444&lr_fee_am

如何从以下URL获取特定值我只需要获取3个值

http://earnprofitclickint.com/UserWorking/Successfull.aspx?lr_paidto=U9925362&lr_amnt=2.00&lr_currency=LRUSD&lr_store=http%3A%2F%2Fwww.earnprofitclickint.com&lr_merchant_ref=&lr_paidby=U3563444&lr_fee_amnt=0.00&lr_transfer=143636187&lr_timestamp=2013-12-05+18%3A31%3A33&ctl00%24contentplaceholder1%24amount=&ctl00%24contentplaceholder1%24id=70&ctl00%24contentplaceholder1%24txtamount=+2&ctl00%24contentplaceholder1%24username=networker&lr_encrypted=04E20ADA982A2AF9C1C64DB3C1601BA596373E22D7B4D21813A51C43DC0198CD&lr_encrypted2=59C8269D431F915360F3B8179EC95181D8C458AB91D72AF3DFC1DC0DFDAC4F64
我想从Liberty Reserve网站返回的上述URL中获取3个值,并想使用LINQ to SQL将这三个值插入数据库

我需要得到以下值

r_amnt=2.00 ID=70 username=networker

我已经在页面加载中编写了代码,以便在响应到来时获得上述值,并重定向到我的成功页面:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ID.Value = Request.QueryString["id"].ToString();
        UserName.Value = Request.QueryString["username"].ToString();
        Amount.Value = Request.QueryString["lr_amnt"].ToString();

        SaveLocalHistory();
        Divmessage.Visible = true;
    }
}

public void SaveLocalHistory()
{
    MLMDataContext db = new MLMDataContext();

    UsersInvestement pd = new UsersInvestement();
    pd.Amount = Convert.ToDouble(Amount.Value);
    pd.UserId = Convert.ToInt32(ID.Value);
    pd.UserName = UserName.Value;
    pd.Description = "This amount has been received From LR";
    pd.IncomeTypeId = 4;
    pd.CreatedDate = DateTime.Now.Date;
    db.UsersInvestements.InsertOnSubmit(pd);
    db.SubmitChanges();
}

这是对URL的手动更改:



如果我手动更改它,它就会工作。有什么想法吗?

我非常确定查询字符串值是区分大小写的,这意味着这段代码

ID.Value = Request.QueryString["ID"].ToString();
UserName.Value = Request.QueryString["UserName"].ToString();
Amount.Value = Request.QueryString["lr_amnt"].ToString();
应该是这种形式

ID.Value = Request.QueryString["id"].ToString();
UserName.Value = Request.QueryString["username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();
如果您想退出“r\u amnt=2.00 id=70 username=networker”


另一方面,请注意,您从未处理过数据库上下文。这可能很危险,因为您的连接可能在很长时间内不会关闭,我建议您改为:

using( MLMDataContext db = new MLMDataContext() )
{
 UsersInvestement pd = new UsersInvestement();
 pd.Amount = Convert.ToDouble(Amount.Value);
 pd.UserId = Convert.ToInt32(ID.Value);
 pd.UserName = UserName.Value;
 pd.Description = "This amount has been received From LR";
 pd.IncomeTypeId = 4;
 pd.CreatedDate = DateTime.Now.Date;
 db.UsersInvestements.InsertOnSubmit(pd);
 db.SubmitChanges();
}

using语句确保在DataContext(继承自IDisposable)上调用
Dispose
,并在操作完成后正确关闭连接。

您的参数名称不是
username
id
,它们是
ctl00$contentplaceholder 1$username
ctl00$contentplaceholder 1$id
id

由于
%24
当URLDecode给出
$
时,您也需要进行相应的替换

试试这个:

ID.Value = Request.QueryString["ctl00$contentplaceholder1$id"].ToString();
UserName.Value = Request.QueryString["ctl00$contentplaceholder1$username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();

它应该会起作用。否则请告诉我!:)

感谢您的帮助:我已按照上述步骤完成,但只得到一个查询金额。Value=Request.QueryString[“lr_amnt”].ToString();值不是它给出的另一个错误,我认为由于用户名和id前面的空格,URL有人能帮我吗?谢谢,我更新了id.value=Request.QueryString[“id”].ToString()等代码;UserName.Value=Request.QueryString[“UserName”].ToString();Amount.Value=Request.QueryString[“r_amnt”].ToString();当我手动更改url时,它会工作并删除%24感谢您的帮助:我已根据上述操作完成,但它只得到一个查询量。Value=Request.QueryString[“lr_amnt”].ToString();值不是它给出的另一个错误,我认为由于用户名和id前面的空格,URL有人能帮我吗?谢谢,我更新了id.value=Request.QueryString[“id”].ToString()等代码;UserName.Value=Request.QueryString[“UserName”].ToString();Amount.Value=Request.QueryString[“r_amnt”].ToString();如果没有,请告诉我,还有一件事可能是个问题。如果这不起作用,我会对它进行排序。感谢sunny Rgupta的帮助:当我使用上面提到的方法时,它会再次出现可为空的异常,因此我将此%24复制到记事本并查看,并且知道这是$sign,所以我将其更新为ID.Value=Request.QueryString[“ctl00$contentplaceholder1$ID”]。ToString();UserName.Value=Request.QueryString[“ctl00$contentplaceholder1$UserName”].ToString();Amount.Value=Request.QueryString[“lr_amnt”].ToString();谢谢你的好主意,这正是我说可能还有另一个问题时的想法。