【问题标题】:How to pass value from one action to another action having same controller如何将值从一个动作传递到另一个具有相同控制器的动作
【发布时间】:2014-05-17 03:06:03
【问题描述】:

您好,我正在 MVC3 中开发一个应用程序。我被困在一个地方。每次当控制转到IIndex1 动作时,它的参数值都变为0。但它应该与IIndex 动作参数中的值相同。我使用过会话、ViewBag、ViewData,但我的问题仍然存在。请给我建议。

        public ActionResult GetMDN(string msisdn)
        {
            number = msisdn.Substring(0, msisdn.IndexOf('$'));
            if (number.ToLower() != "unknown" && number.Length == 12)
            {
                number = number.Remove(0, 2);
            }
            Session["msdresponse"] = number;
            Session["moptr"] = msisdn.Substring(msisdn.LastIndexOf('$') + 1);
            number = msisdn;
            int sngid=int.Parse(ViewData["isongid"].ToString());
            return RedirectToAction("IIndex1", new { iid = sngid });
        }

        public ActionResult IIndex(int id)
        {
            ViewBag.isongid = id;
            ViewData["isongid"] = id;
            Response.Redirect("http:XXXXXXXXXXXXXXXX");
            return RedirectToAction("GetMDN");
        }

        public ActionResult IIndex1(int iid)
        {

        }

【问题讨论】:

  • 这段代码不适合你吗?
  • 不......这就是我在这里发帖的原因。主要问题是当控制从 GetMDN 动作传递到 IIndex1 动作时,Int iid hase 的参数变为 0。但它应该与 IIndex 动作参数中的任何值相同

标签: asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

您可以使用 TempData。您可以在操作之间传递每种类型的数据,无论它们是否在同一个控制器中。你的代码应该是这样的:

    public ActionResult GetMDN(string msisdn)
    {
        int sngid=10;

        TempData["ID"] = sngid;

        return RedirectToAction("IIndex");
    }

    public ActionResult IIndex()
    {

        int id = Convert.ToInt32(TempData["ID"]);// id will be 10;
    }

【讨论】:

    【解决方案2】:

    使用 TempData 而不是 ViewData/ViewBag 来存储重定向后应该保留的数据。 ViewData/ViewBag 允许将值从控制器传递给视图。

    关于这个主题的阅读:

    http://www.codeproject.com/Articles/476967/WhatplusisplusViewData-cplusViewBagplusandplusTem

    http://msdn.microsoft.com/en-us/library/dd394711(v=vs.100).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      相关资源
      最近更新 更多