【发布时间】:2016-05-01 14:03:12
【问题描述】:
正如我所读到的,一旦你设置了一个临时数据,它将持续到下一个请求,如果你需要更多地使用它,那么我们需要使用 keep。但在这种情况下,我的临时数据在某个地方丢失了。
场景如下:
我有一个视图,对应于我的控制器中有一个操作方法,在这里我只是设置了一个临时数据,如下所示:
控制器类:
public actionresult myview()
{
tempdata["Empid"]= sourceid;
}
视图由如下几个renderAction组成,控制器中的所有这些actionmethods都返回一些部分视图
@html.renderAction("details","mycontroller")
@html.renderAction("details","mycontroller")
@html.renderAction("details","mycontroller")
@html.renderAction("details","mycontroller")
现在在部分视图中,假设在一个部分视图中,我有几个 ajaxified 调用,我有一个使用 ajax 的 post 方法,如下所示:
$.post("action", "controller",{}});
请忽略语法错误,因为我只是在理解 tempdata 的逻辑方面存在问题。
因此,回到上面,现在 post 方法具有使用我在视图页面加载时设置的临时数据的操作方法,即 tempdata["Empid"],因为需要此临时数据来获取员工的详细信息。
所以,它获取数据,重新生成 json 格式的数据,然后完美地显示在视图中。 直到这里一切都很好。现在,我有一个使用 ajax post 来命中控制器的部分视图,它不是同一个控制器,而是一个不同的 cs 文件。这个临时数据在这里消失了。
为什么会这样..
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-5