1

在我的第一页中,我列出了与该计划相关的金额列。如果我单击一个列,它会重定向到另一个页面。在该页面中,我想显示我之前单击的数量。我以前从未使用过会话。现在我试过了。但它总是只显示单个金额.. 我不知道如何为多个值创建会话..

控制器

        Session["rs360"] = "Rs. 360";
        Session["rs1000"] = "Rs. 1000";
        Session["rs1500"] = "Rs. 1500";

看法

 <div><%:Session["rs360"] %></div>

实际视图(Index.Cshtml)

 <div id="rs360">
    <span class="font18">Rs.360</span> 
 </div>

<a href="<%: Url.Action("Payment", "Home") %>"><img src="../../Content/Images/Subscribe now on click.png" class="btn" onclick="return sms_confirm1()" /></a>

<div id="rs1000">
  <span class="font18">Rs.1000</span> 
 </div>

<a href="<%: Url.Action("Payment", "Home") %>"><img src="../../Content/Images/Subscribe now on click.png" class="btn" onclick="return sms_confirm1()" /></a>

当单击按钮时,它会转到另一个名为“付款”的视图

 <td>
   <a class="callpickupcash" href="<%: Url.Action("ElectronicTransfer", "Home") %>"><img src="/Content/Images/ebanking.png" class="Featured-plan"></a>
 </td>

当点击上面的这个按钮时,它会打开一个弹出菜单......在那个菜单上我应该显示金额值..

在这里,只有我通过了以下会话,我已经在顶部声明了

<div><%:Session["rs360"] %></div>

在这里,我给出了会话变量,所以我的结果显示为 360。但是当我点击 1000 时,它应该会改变.. 怎么做?

4

2 回答 2

2

我通过使用 localStorage() 函数找到了我的问题的答案。

我传递了单选按钮的值,例如

<%:html.radiobutton("smscount",500,true)%>

jQuery

<script type="text/javascript">
   function sms_confirm() {

       var amount = $("input:radio[name=smscount]:checked").val();
       localStorage.setItem("smscount", amount);
       if (r == false) {
           return false;
       }

   }

重定向页面

在这里,我将值显示到文本框中。所以我拿了文本框ID ..

$(function () {
          var textbox = $('#Amount');
          var checkValue = localStorage.getItem("smscount")
          textbox.val(checkValue);

      });
于 2013-10-29T10:52:12.307 回答
1

如果您没有将 session 用于其他任何事情,我建议您对于这个问题,您不需要 session。您可以简单地将点击的数量传递给您使用该链接调用的操作方法,然后将该数量合并回您传递给第二个视图的模型中。您可以通过使用 viewData 来做到这一点,或者通过将视图强类型化到包含该信息的视图模型来更好地做到这一点。

编辑

好的。让我看看我是否做对了。渲染的第一个视图上的链接:

Url.Action("Payment", "EmployerVas")

在 EmployerVas 中调用 Payment 方法,该方法呈现一个视图 (view2),其中包含一个按钮,该按钮呈现为:

Url.Action("ElectronicTransfer", "EmployerVas","Employer")

这将打开一个弹出菜单,您希望在第一个视图中单击的值显示在弹出窗口中。如果这就是你想要做的,并且没有对你正在做的事情做太多改变并将你转移到一个基于 viewModel 的系统,我会改变以下内容:

 Url.Action("Payment", "EmployerVas", new{amount="360"})

更改 EmployerVas 控制器中的 Payment 方法以接受 int 或 long 类型的输入参数或任何满足您需要的参数。

然后,如果需要,您可以将其存储在会话中并将其传递给 view2,然后在 view2 中再次更改链接以传递该值(或者如果您想使用存储在会话中的值,则保持链接不变):

Url.Action("ElectronicTransfer", EmployerVas","amountToSHow=sessionOrViewDataPassedValue")

现在,由于该值在会话中,您可以使用它,或者您可以更改 ElectronicTransfer 方法以接受与上述相同类型并命名为 amountToShow 的输入值,然后您可以将其传递给弹出窗口。

于 2013-10-25T05:21:50.617 回答