Output JavaScript from Razor

Output JavaScript from Razor

本文关键字:Razor from JavaScript Output      更新时间:2023-09-26

我有一个ASP.NET MVC应用程序。我的应用程序中的一个视图有一些JavaScript。我想根据ViewBag中的值来设置JavaScript变量的值。如果ViewBag值存在并且不为null,我想使用它。否则,我想为JavaScript变量分配一个空字符串值。以下是我目前正在尝试的:

<script type='text/javascript'>
  function formatItem(item) {
    var itemName = @(ViewBag.ItemName ? ViewBag.ItemName : '');
    alert(itemName);
  }
</script>

这个块抛出一个错误,上面写着:

Compiler Error Message: CS1011: Empty character literal

有办法做我想做的事吗?如果是,如何?

谢谢!

您只需要使用一个空字符串而不是字符文字(双引号与单引号):

<script type='text/javascript'>
function formatItem(item) {
    var itemName = '@((!string.IsNullOrEmpty(ViewBag.ItemName)) ? ViewBag.ItemName : "")';
    alert(itemName);
}
</script>

你唯一真正的问题是你用了"而不是"表示字符,"表示字符串;

您需要双引号,而不是单引号。

var itemName = '@(String.IsNullOrEmpty(ViewBag.ItemName) ? ViewBag.ItemName : "")';

更好的是,您可能希望使用String对象:

var itemName = '@(String.IsNullOrEmpty(ViewBag.ItemName) ? ViewBag.ItemName : String.Empty)';