【问题标题】:How to check ViewBag's property in a cshtml page?如何在 cshtml 页面中检查 ViewBag 的属性?
【发布时间】:2013-09-04 09:27:50
【问题描述】:

我正在开发 MVC 应用程序,我需要检查 cshtml 页面上的 ViewBag 值,我该怎么做?

在 Controller.cs 上:

Viewbag.Mode= "EDIT";

我需要检查来自Viewbag.Mode 的值 如果是EDIT,则显示警报为EDIT

我正在用 JavaScript 编写这个条件代码,在 cshtml 中检查 Viewbag 属性的语法是什么?

【问题讨论】:

    标签: javascript jquery asp.net-mvc razor viewbag


    【解决方案1】:

    您不能直接访问 javascript 中的 C# 变量,因为一个是服务器端,另一个是客户端。您需要将 ViewBag 值写入 HTML 输出,然后使用 javascript 查询 DOM 以找到它。像这样的:

    在您的 CSHTML 中:

    @Html.Hidden("Mode", (string)ViewBag.Mode, new { id = "mode" })
    

    在 jQuery 中:

    if ($('#mode').val() == "EDIT") {
        // do something...
    }
    

    您也可以在您的视图中将 JS 代码直接包装在 C# if (ViewBag.Mode == "EDIT") 语句中,但这既丑陋,也不是很好的关注点分离。

    【讨论】:

    • 没问题,很乐意提供帮助。
    【解决方案2】:

    很简单.. 只需在 ViewPage 中使用 @Razor 语法

    @if(ViewBag.Mode=="Edit")
    {
     //here you show the alert thing
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 2014-02-02
      • 2012-01-13
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多