我的 ViewBag 无法工作有什么原因吗?

2023-12-01

我有以下ActionResult in a controller你可以看到我在ViewBag如果成功的话。然后在View如果它不为空,它应该输出该消息。但是,我无法显示该消息,也没有看到问题所在。

[HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                context.Roles.Add(new Microsoft.AspNet.Identity.EntityFramework.IdentityRole()
                {
                    Name = collection["RoleName"]
                });
                context.SaveChanges();

                ViewBag.ResultMessage = "Role created successfully.";
                return RedirectToAction("Index");
            }
            catch (Exception)
            {
                return View();
            }            
        }

这是我的 Index.cshtml

@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>
@{
    ViewBag.Title = "Index";
}

<h2>Roles Listing </h2>

@ViewBag.ResultMessage

@Html.ActionLink("Create New Role", "Create") | @Html.ActionLink("Manage User Role", "ManageUserRoles")

<div>
    <table class="table table-bordered table-condensed table-striped table-hover ">
        <thead>
            <tr>
                <th>Role</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var role in Model)
            {
                <tr>
                    <td><strong>@role.Name</strong></td>
                    <td>
                        <span onclick="return confirm('Are you sure you want to delete @role.Name?')"><a href="/Roles/[email protected]" class="delLink" style="color:red;">Delete</a></span> |
                        @Html.ActionLink("Edit", "Edit", new { roleName = @role.Name })
                    </td>
                </tr>
            }
        </tbody>
    </table>
</div>

ViewBag当您从controller to view。寿命短意味着当发生重定向时值变为空。这是因为他们的目标是提供一种相互沟通的方式controllers and views。这是服务器调用中的一种通信机制。

既然你正在使用RedirectToAction, the ViewBag变成null当它达到view.

您可以使用TempData为了这:

TempData["ResultMessage"] = "Role created successfully.";

It uses Session作为存储,但在第二次响应后它将不再存在。TempData当您从一个位置移动时有助于维护数据controller给其他人controller或从一个动作到另一个动作。换句话说,当您重定向时,Tempdata有助于维护这些重定向之间的数据。它在内部使用会话变量。TempData在当前和后续请求期间使用仅意味着当您确定下一个请求将重定向到下一个视图时使用它。

有关于此的更多理解,请参阅此link

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 ViewBag 无法工作有什么原因吗? 的相关文章

随机推荐

  • Hive - 可以提取常见选项以便在其他脚本中重用吗?

    我有两个 Hive 脚本 如下所示 脚本A SET hive exec dynamic partition true SET hive exec dynamic partition mode non strict SET hive exec
  • 适用于 Mac 的 VSTO?

    我使用 VSTO 构建了一个自定义 Outlook 工具栏选项 该选项将电子邮件记录在数据库中 这在 Windows 中运行良好 然而 有人问我是否可以将其迁移到 Mac for Entourage 我认为这是 Mac 版本的 Outloo
  • 混合托管和非托管 C++ 代码?

    关于将托管 C 与非托管 C 混合使用 我有几个具体问题 如果我遗漏了ref and value在类 结构声明中 这是否会自动使类 结构成为非托管的 或者我还需要包括 pragma unmanaged and pragma managed指
  • scipy imsave 保存错误的值

    我正在尝试编写使用 numpy 和 scipy 生成视差图的代码 但是我在图像的 numpy 数组中存储的值与输出图像中实际显示的值完全不同 并使用杂项保存 我保存 例如 在数组中 没有一个值大于 22 但在图像中 我有从 0 到 255
  • Oracle SQL 正则表达式未返回预期结果

    我正在使用一个在 Java PHP regex 测试器中完美运行的正则表达式 d s d 3 例子 https regex101 com r oH6jV0 1 但是 尝试在 Oracle SQL 中使用相同的正则表达式不会返回任何结果 举个
  • 通过webapp重启tomcat

    我有一个关于通过我的 web 应用程序重新启动 tomcat 服务器的疯狂请求 我为此搜索了近 2 天 我发现的只是执行外部批处理文件或调用另一个程序来执行此操作 使用java代码有没有最佳的解决方案 我错过了什么吗 为什么不直接创建一个脚
  • 如何使用 Objective C 在 iPhone 的表格视图上应用复选标记?

    我正在尝试在表视图中申请复选标记 但它不起作用 如果我再次在该单元格中再次检查 则复选标记适用 但不适用于新选定的单元格 那里有谁能帮助我 谢谢阿米尔 我正在使用以下代码 pragma mark pragma mark Table Data
  • 无法使用 popen 启动两个交互式 shell

    我有以下 Python 代码片段 但无法解释它为什么会这样 import subprocess bash1 subprocess Popen bin bash l i stdin subprocess PIPE print Checkpoi
  • 类型错误网格搜索

    我曾经创建循环来寻找模型的最佳参数 这增加了编码中的错误 所以我决定使用GridSearchCV 我正在尝试为我的模型找出 PCA 的最佳参数 我想要进行网格搜索的唯一参数 在这个模型中 归一化后 我想将原始特征与 PCA 缩减特征相结合
  • JavaScript。如何比较输入数组

    我已经被这个问题困扰三天了 请有人帮助我 挑战5构造一个函数intersection比较输入数组并返回一个新数组 其中包含在所有输入中找到的元素 function intersection arrayOfArrays console log
  • 您可以将实例变量声明为构造函数中的参数吗?

    这行得通吗 class Cars Cars int speed int weight 我只是想弄清楚构造函数 如果它像方法一样被调用 那么我认为它会像方法一样工作 您可以在调用该方法时使用的方法中创建局部变量 因此我不明白为什么必须在构造函
  • 推送通知委托回调未被调用

    我通过调用以下代码来注册推送通知 UIApplication sharedApplication registerForRemoteNotificationTypes UIRemoteNotificationTypeBadge UIRemo
  • ESP 和 EAX 一样通用吗?

    在x86架构下 可以做什么EAX但不与ESP 忘记了push and pop and call ESP 由中断隐式异步使用 在现代操作系统中 这只适用于内核堆栈 不适用于用户空间堆栈 当中断使能时 内核代码始终需要保持 ESP 有效 并假设
  • Django Heroku 没有名为“我的应用程序名称”的模块

    我正在尝试将我的第一个 Django 应用程序部署到 Heroku 我能够迁移数据库并创建超级用户 但现在我陷入了困境 2018 05 19 22 51 01 0000 4 INFO Listening at http 0 0 0 0 31
  • 避免在 JqGrid 工具栏中搜索特殊字符

    我已经使用 Asp Net 成功构建了 Jq GRid 它具有除 避免工具栏搜索中的 Spl 字符 之外的所有必需功能 我试图找到工具栏的 ID 但没有成功 谁能告诉我如何使用正则表达式之类的东西来拒绝输入某些 Spl 字符 例如 和其他一
  • 使用该线上的点找到垂直线

    我有一条线 P1 P2 以及该线上的一个点 中点 我可以使用什么方程找到穿过中点的直线 P1 P2 的垂直线 标有 的点未知 我不想使用角度 只想使用给出的 3 个点 P1 P2 中点 线P1 P2可以具有任何方向 角度 提前致谢 定义向量
  • 如何从另一个jar运行一个jar文件

    我有一个已使用 L4J 转换为 exe 的 jar 文件 以及 appdata 中的另一个 jar 文件 有两个文件的原因是我需要一个更新机制 我的问题 如何在桌面上运行 exe 文件 然后从中加载 appdata 中的 jar 你可以使用
  • Python获取文件名并更改并将其保存在变量中

    我正在关注需要一个最小的 Django 文件上传示例 在view py中有 newdoc Document docfile request FILES docfile newdoc save 假设我上传文件xyz csv这使得 newdoc
  • C# 中的 UTF8(引用的可打印)转换问题

    我正在从邮箱中提取法语电子邮件 并且这些电子邮件包含重音符号 我相信它使用UTF8编码 我尝试过在互联网上找到的不同 UTF8 转换方法 但均不成功 例如 在 C 中 如何将 Montr C3 A9al 转换为 Montr al 编辑 此外
  • 我的 ViewBag 无法工作有什么原因吗?

    我有以下ActionResult in a controller你可以看到我在ViewBag如果成功的话 然后在View如果它不为空 它应该输出该消息 但是 我无法显示该消息 也没有看到问题所在 HttpPost public Action