2

我还没有找到另一个直接回答这个问题的问题。我的视图上有一个 Ajax.BeginForm 像这样

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

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

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

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

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

为什么当我知道它有值时它不输出?

ViewData 和 ViewBag 和 Model 属性也是如此

4

1 回答 1

0

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

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

ViewData 未显示在 Ajax.BeginForm 中

于 2012-04-01T05:19:53.917 回答