“if”读取剑道UI中的文本asp.net mvc

bq3bfh9z  于 2023-05-30  发布在  .NET
关注(0)|答案(1)|浏览(119)

我有一列代码行来显示数据。出于某种原因,“if”读取的是文本,而不是程序
下面的代码行为剑道ui asp.net mvc

@{
  var queryLevel = ViewBag.queryLevel as string;
}

columns.Template(@<text></text>).ClientTemplate(
   "<div class=\"text-center\">" +

      "if ("+ queryLevel +" == \"Well\") {" +
         "<span>Ya</span>" +
      "}" +

      "<form action=\"/AssetOperationProduction/Update\" method=\"post\" style=\"display:inline\">" +
      "<input type=\"hidden\" name=\"Id\" value=\"#= Id #\" />" +
      "<button class=\"btn btn-secondary text-white m-1\" type=\"submit\"><i class=\"fa-solid fa-pencil\"></i></button></form>" +

      "<form action=\"/AssetOperationProduction/Delete\" method=\"post\" style=\"display:inline\">" +
      "<input type=\"hidden\" name=\"Id\" value=\"#= Id #\" />" +
      "<button class=\"btn btn-danger text-white m-1\" type=\"submit\"><i class=\"fa-solid fa-trash\"></i> "+ queryLevel +" </button></form>" +

      "</div>"
).Width(200);
ds97pgxw

ds97pgxw1#

你实际上是试图在JS中访问ViewBag变量。检查this thread以了解执行此操作的详细信息。另外,你应该使用template syntax,并将if语句 Package 在#符号中,这样JS代码就可以这样计算,而不是文本:

@{
   var queryLevel = ViewBag.queryLevel as string;
}
<script>
   var myVariable = '@ViewBag.queryLevel';
</script>

然后,您可以:

.ClientTemplate(
"<div class=\"text-center\">" +
  "#if (myVariable == \"Well\") {#" +
     "<span>Ya</span>" +
  "#}#" +
 ...
 )

这是一个example

相关问题