English 中文(简体)
暂不清除
原标题:TempData is not clearing as expected

I m working on an application using ASP.NET 4.0 and MVC 2.0. If it s in any way relevant, I m using VS2010.

I m running into complications with TempData. I did not write the original code, but it isn t working correctly and I m attempting to fix it. I don t have a lot of experience working with TempData and ViewData.

我的指数行动如下(现成编码):

public virtual ActionResult Index()
{
   var vm = new IndexViewModel();

   // some code here to set up the ViewModel

   if (TempData.ContainsKey("Success"))
      vm.Success = true; 

   return View(MVC.Controller.Views.Index, vm);
}

而我的行动如下(假体编码):

[HttpPost]
public virtual ActionResult Index(IndexViewModel vm, List<int> formData)
{
    if (DoSomethingWithData(formData))
    {
       TempData["Success"] = true;
       return RedirectToAction(MVC.Controller.ActionNames.Index);
    }

    TempData["Message"] = "Failed to use formData";

    return View(MVC.Controller.Views.Index, vm);
}

这一观点体现了一种形式,如果是的话,就用了一种成功的信息。 成功是真实的。 如果有电文,也可发送“电文”。

我第一次来到第一页。 我输入INVALID的数据,提交......我收到错误信息所预示的形式。 (我知道这里设计不好,因为它没有回头......,而且你在复读方面经验不好,但我对此没有担心) 所有这一切都是巨大的。

www.un.org/Depts/DGACM/index_spanish.htm 当我使用评价数据库的数据时,问题就表现在。 如果我提交了有效的表格数据,那么,我收到一个预期的成功信息,但如果我复读这一页,成功的信息仍然存在。 事实上,如果我去找一个完全不同的网站,回去,成功的信息仍然存在。 由于某种原因,在改头和读后,数据仍然存在。 既有方向,也有“......现在应该有明确的时间数据?

我合理地相信,由于任何原因,我把手脚放在了定时标上,但我确信,我照像谷歌这样的东西,并直接返回到URL这一页上,似乎仍然有人居住着TempData[“Success”)。

非常清楚的是,我要么不明白一下一下一下一下一下一下一下一下,TmData究竟应该如何运作(不作保),要么是说我没有经验。

Any advice is welcome!

Thanks, Dave

[EDIT]

在发出成功信息时,这种观点实际上并没有放弃形式......它只是传达成功的信息。

这一观点大致如下:

<% if (TempData.ContainsKey("Message")) { %>
   Emit message...
<% } %>

<% using (Html.BeginForm(MVC.Controller.ActionNames.Index, 
                         MVC.Controller.Name, 
                         FormMethod.Post, 
                         new { id = "form"})) { %>
   <% if (!Model.Success) { %>
      Emit form...
   <% } else { %>
      Emit confirmation message...
   <% } %>
<% } %>

弗朗西斯科向我指出了我所认为的“......”,但是,它却把“观点”的构造变成了欺骗......这样,它就不与这一点相抵触。 我肯定知道,TmData[`Success']仍然被设定(而不是像一味改观,使之取得成功一样),因为我已穿过该守则,并且不断采取步骤,如果说它真的说话,即便是在复读之后。

最佳回答

正如我在评论中所说的那样,只是补充这一点。 我建议这样做。

if (TempData["Success"] != null) 
    vm.Success = true;

if (TempData.ContainsKey("Success"))
      vm.Success = true; 

... so it counts as a TempData read. Glad it worked. Regards

问题回答

微软公司改变了TmData的行为,我们需要在MVC 2和3中了解这一点。 如今,在控制者行动周期结束时,TmData已不再完全清楚。 温度 现在,数据(自动和没有改动任何内容)一直持续到其他网页。 Temp> 数据钥匙现在只有读到时才予以清除。 此外,如果你使用“再”或“再” 即便读到,他们仍将坚持下去。

详情如下:





相关问题
ASP.Net MVC - Handle Multiple Checkboxes

Ok, I have a role based permission system in place and would like admin s to be able to edit the permissions for each role. To do this I need to load lots of checkboxes, however I m struggling with ...

Entity Framework error when submitting empty fields

VS 2010 Beta 2, .NET 4. In my ASP.NET MVC 2 application, when I submit a form to an action method that accepts an object created by the entity framework, I get the following error: Exception Details:...

ASP.Net MVC Architecture - Location of ViewModels

We have a decent sized MVC project running well at the moment, i ve started to look at some re-factoring and I have a question. At the moment the Data Layer and Service Layer is stored in a seperate ...

ASP.Net MVC Go To Declaration On view

Is there anyway when in an MVC view to right click a function call and get to the declaration? Like you can do in the code behind/controllers

ASP.NET MVC 2 Beta - Default Model Binder

I m experiencing some different behavior after switching from ASP.NET MVC 1.0 to ASP.NET MVC 2 Beta. I checked the breaking changes but it s not clear where the issue lies. The problem has to do with ...

Asp.net MVC Dynamic Menu System

In our current Asp.net MVC application we have 2 menu systems one accross the top and one on the left hand side. Now we have a partial view that renders the menu, however is the only way for this too ...

热门标签