如何使用查询字符串从单个按钮获取两个值

时间:2014-02-07 05:17:45

标签: c# jquery asp.net-mvc session query-string

我在按钮点击中确认了两个值。当页面重定向时,2个值将通过。但在页面中我不知道如何使用查询字符串获取第二个值..

<a href="<%: Url.Action("Index", "Test", new { planId = "500" ,validity="120"}) %>"><a>

<% var value = string.Empty;
      var value1 = string.Empty;
       if (Request.QueryString.Count > 0)
       {
           value = Request.QueryString[0];
           Session["PlanId"] = value;
       }
       else if (Request.QueryString.Count>0)
       {
           value1 = Request.QueryString[3];
           Session["Validity"] = value1;
       }%>

PlanId正在接受这个价值。但是有效性并没有带来价值..请帮我怎么做?

4 个答案:

答案 0 :(得分:1)

还有另一种解决此问题的方法,而不是使用QueryString集合。

假设你有这样的网址 -

<a href="@Url.Action("Test", "Model" , new { planid="RAT500" ,validity="120" })">hi<a>

然后有相应的动作 -

public class ModelController : Controller
{
    public ActionResult Test(string planid, string validity)
    {
        return null;
    }
}

当您点击该链接时,您的值将显示在参数中,如下所示 -

enter image description here

并说你有其他QueryStrings,如下所示 -

<a href="@Url.Action("Test", "Model" , new { planid="RAT500" ,validity="120", name = "rami"})">hi<a>

然后您可以获得其他QueryString,如下所示 -

enter image description here

答案 1 :(得分:0)

这是else if,因此如果第一个if为真,则会跳过else if。它应该如下:

 <% var value = string.Empty;
    var value1 = string.Empty;
    if (Request.QueryString.Count > 0)
    {
        value = Request.QueryString[0];
        Session["PlanId"] = value;
    }

    if (Request.QueryString.Count > 3)
    {
        value1 = Request.QueryString[3];
        Session["Validity"] = value1;
    } %>

答案 2 :(得分:0)

我不确定问题是什么,但第二次测试应该是检查计数&gt; 3,不计数&gt; 0

答案 3 :(得分:0)

QueryString可以直接通过名称编制索引 - 更容易阅读(并避免在字符串之外获取元素):

  var planId = Request.QueryString["planId"];      
  var validity = Request.QueryString["validity"];