【问题标题】: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
}