我还没有找到另一个直接回答此问题的问题。我的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以及模型属性
也是如此答案 0 :(得分:0)
您似乎使用的是TempData而不是ViewData,它们并不完全相同。您还提到您正在使用Ajax.BeginForm来调用此控制器操作。由于这是一个AJAX调用,因此请确保在AjaxOptions中指定了UpdateTargetId,以便将生成的部分注入到DOM的某处
这里有一些相关的链接 http://davidhayden.com/blog/dave/archive/2009/05/19/ASPNETMVCAjaxBeginForm.aspx