发布后不输出Ajax.BeginForm TempData

时间:2012-03-30 23:54:56

标签: asp.net-mvc tempdata ajax.beginform

我还没有找到另一个直接回答此问题的问题。我的View上有一个Ajax.BeginForm,如此

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions())){
    //Stuff
    <div id="aaaa"> @TempData["Key"] </div>
}

在action方法中,我在TempData中设置了一个我想要输出的消息值。

TempData["Key"] = "Value";
return View("View");

当我调试它时,我看到它成功地将值添加到TempData。我还看到它再次开始渲染View时仍然具有值。但由于我无法解释的原因,它只是输出为

<div id="aaaa"> </div>

为什么在我知道它的时候不输出值?

ViewData和ViewBag以及模型属性

也是如此

1 个答案:

答案 0 :(得分:0)

您似乎使用的是TempData而不是ViewData,它们并不完全相同。您还提到您正在使用Ajax.BeginForm来调用此控制器操作。由于这是一个AJAX调用,因此请确保在AjaxOptions中指定了UpdateTargetId,以便将生成的部分注入到DOM的某处

这里有一些相关的链接 http://davidhayden.com/blog/dave/archive/2009/05/19/ASPNETMVCAjaxBeginForm.aspx

ViewData not shown in Ajax.BeginForm