剃刀 if 语句的奇怪结果
Strange results with Razor if statement
我有一个在某些情况下显示不同按钮的部分视图。但是,当我更改此 if 语句时,即使我相信这些 if 语句在技术上做同样的事情,我也得到了不同的结果。我该如何解决这个问题,以便 if 语句完全正常运行?如果需要,我也会发布整个视图。只是请在评论中要求它!
基本上,当我切换数据库值以在 0 和 1 之间切换"ButtonStatus"时,我想在 if 语句中切换我想做的事情。
我的部分观点:
@if(ViewBag.ButtonStatus != 0)
{
....
//display 1 or 2 buttons
....
....
}
else {
....
// do not display buttons
....
}
目前使用此 if 语句,显示 1 或 2 个按钮工作正常(按钮状态 = 1(。但是,当按钮状态 = 0 时,仍显示 2 个按钮。这意味着,逻辑永远不会进入 if 语句的 else 部分。我什至在 GrabGhCsStatus 函数中放了一个警报,警报就会消失 =/
当我将部分视图更改为
我更改的部分视图:
@if(ViewBag.ButtonStatus == 1)
{
....
//display 1 or 2 buttons
....
....
}
else {
....
// do not display buttons
....
}
即使按钮状态 = 1,也不会显示任何按钮。我在 if 语句的 else 部分放了一个警报,然后弹出警报。但是当 ButtonStatus = 1 时,不应调用 else 部分
控制器:
public class GhCsStatusController : Controller
{
public ActionResult Index()
{
ViewBag.CheckIfCsIsRunning = GhCsStatusProvider.GetGhCsStatus()["CheckIfCsIsRunning"];
ViewBag.CheckIfGhIsRunning = GhCsStatusProvider.GetGhCsStatus()["CheckIfGhIsRunning"];
ViewBag.CsStatus = GhCsStatusProvider.GetGhCsStatus()["CsStatus"];
ViewBag.GhStatus = GhCsStatusProvider.GetGhCsStatus()["GhStatus"];
ViewBag.ButtonStatus = GhCsStatusProvider.GetGhCsStatus()["ButtonStatus"];
return View();
}
}
供应商:
public static class GhCsStatusProvider
{
public static Dictionary<string,int> GetGhCsStatus()
{
using (Entities db = new Entities())
{
int ButtonStatus;
System.Data.Objects.ObjectParameter CsOut = new System.Data.Objects.ObjectParameter("CsStatus", typeof(int));
System.Data.Objects.ObjectParameter GhOut = new System.Data.Objects.ObjectParameter("GhStatus", typeof(int));
System.Data.Objects.ObjectParameter CsRunValue = new System.Data.Objects.ObjectParameter("CSRunningValue", typeof(int));
System.Data.Objects.ObjectParameter GhRunValue = new System.Data.Objects.ObjectParameter("GHRunningValue", typeof(int));
int r = db.proc_GhCsStatus(CsOut, GhOut, CsRunValue, GhRunValue);
Dictionary<string, int> Status = new Dictionary<string, int>();
Status.Add("CsStatus", (int)CsOut.Value) ;
Status.Add("GhStatus", (int)GhOut.Value);
Status.Add("CheckIfCsIsRunning", (int)CsRunValue.Value);
Status.Add("CheckIfGhIsRunning", (int)GhRunValue.Value);
if (Status["CheckIfCsIsRunning"] == 0 && Status["CheckIfGhIsRunning"] == 0)
{
ButtonStatus = 0;
Status.Add("ButtonStatus", ButtonStatus); // 0 --> do not display
}
else
{
if (Status["CheckIfCsIsRunning"] == 1 || Status["CheckIfGhIsRunning"] == 1)
{
ButtonStatus = 1;
Status.Add("ButtonStatus", ButtonStatus); // 1 --> display
}
}
return Status;
}
}
}
尝试将ViewBag.ButtonStatus转换为视图中的字符串,以查看它是否捕获它。我不是 100% 确定,但试一试。像这样的东西... @if(ViewBag.ButtonStatus.ToString(( == "1"(
相关文章:
- if(foo!==null)的计算结果为true,即使foo为null
- If语句只执行第一个条件并运行其他条件,但没有结果
- 嵌套在WHILE循环中的IF语句的结果混淆了我(Javascript)
- 如何在js中等待if语句内部的结果
- 如果ng-if的计算结果为false,AngularJS会使我的模型数据无效
- IF 语句不改变变量的结果
- 将颜色格式添加到 IF ELSE 结果
- 在文本框中显示 if 语句的结果
- 剃刀 if 语句的奇怪结果
- jQuery:根据if/else结果更改每个
- 简单搜索结果页面:if/else 使用 localStorage 变量和 document.write 时出现问题
- if 语句不起作用并显示相同的结果
- 根据php-if/else语句的结果创建javascript操作
- 使用数组映射过滤带有if条件的结果
- I'm在if语句中使用小于比较器;然而,即使它不应该;t、 它的评估结果为false
- 将if和else-if功能与选择输入一起使用(根据公里和英里转换结果)
- 使用HTML输入切换Javascript Else If.检查值并相应地显示结果.成本估算员
- Javascript查找表与else-if和多个匹配结果
- 如何使用if语句创建用于求和值和计算结果的窗体
- IF语句多个答案-相同的结果Javascript