.NET Core变量不存在/在视图中为空白

时间:2019-03-15 09:31:38

标签: jquery asp.net-core

我将这个ViewModel传递给视图:

public class CreateFormViewModel
{
    public string Id { get; set; }
    [Required]
    public string Name { get; set; }
    public string FormPropertiesList { get; set; }
}

提交表单时,FormPropertiesList将包含一个将在服务器端处理的JSON数组。

但是,问题是当我加载页面时,FormPropertiesList为空。这意味着除非包含任何数据,否则我将无法解析它。

现在这是我得到的错误

  

未捕获到的SyntaxError:意外令牌!==

这是我的jquery代码:

if (typeof @Model.FormPropertiesList !== 'undefined') {
    console.log(JSON.parse(@Model.FormPropertiesList));
}

在控制台中,我可以看到@ Model.FormPropertiesList为空白。不是null或“”,而是空白。

在加载页面之前,我曾尝试将其声明为空服务器端,但是会发生相同的问题。

1 个答案:

答案 0 :(得分:1)

鉴于@Model.FormPropertiesList可以将一个空字符串输出到前端逻辑,那么在尝试解析该字符串之前检查该字符串的长度会更有意义。

不要忘记在输出值时需要在客户端添加引号,以便将其正确解释为字符串:

if ('@Model.FormPropertiesList'.length !== 0) {
  var obj = JSON.parse('@Model.FormPropertiesList');
  console.log(obj);
}

请注意,可以通过合并值来使其更简洁:

var obj = JSON.parse('@Model.FormPropertiesList' || '{}');
console.log(obj);