无法获取将值传递给另一个控制器的操作。参数正在正确传递,但值仍然为空。代码:需要从Display()中获取selecregister值,并根据它获取信息。该信息被分配给ViewList expandoobject并传递给Index()。
[HttpGet]
public ActionResult Index(Expandoobject vl)
{
ViewList = vl;
if (((IDictionary<String, object>)ViewList).ContainsKey("Applist"))
{
ViewList.chk = "Yes";
}
else
{
getbasics(ViewList);
}
ViewList.RegList = GetAllregList(A, B);
return View("Index", ViewList); //default view
}
[HttpPost]
public ActionResult Display(string selectRegister)
{
ViewList.reg = selectRegister;
ViewList.Applist = ReadAPIinfo(A, selectRegister);
return RedirectToAction("Index", ViewList);
}
在上述代码中,参数ViewList。reg, ViewList。应用程序将通过ExpandoObject vl作为空值传递。为了绕过这个问题,我目前将所需的值存储在会话变量中,并以迂回的方法进行解析。想了解参数传递如何工作(动态扩展对象)在MVC.TIA!!注意:我已经使用了TempData[]解决方案,建议在一些其他类似的线程,但不与我的ExpandoObject变量工作。
由于两个动作都在同一个控制器中,所以最简单的方法是
public ActionResult Display(string selectRegister)
{
.....
return Index( ViewList);
}