【问题标题】:Javascript - Unexpected identifier error message in consoleJavascript - 控制台中出现意外的标识符错误消息
【发布时间】:2020-08-06 20:30:37
【问题描述】:

我收到了一个意外的标识符错误,我不确定是什么原因造成的。这是我设置“myData”的方法

var myData = {
   Id: @Model.Id,
   JobId: @Model.JobId,
   ItemId: @Model.ItemId, //error on this line in console
   ItemName: @Model.ItemName,
   MFGNumber: @Model.MFGNumber,
   Parts: partArray,
   Components: componentArray,
   ComponentParts: componentPartArray,
   ComponentSubComps: componentSubCompsArray,
   SubCompParts: subCompPartsArray,
   SubCompSubComps: subCompSubCompsArray,
   SubCompSubCompParts: subCompSubCompPartsArray
 }

这是我的 itemViewModel 的设置方式

 public class ItemViewModel
    {
        [Required]
        public int Id { get; set; }
        [Required]
        public int JobId { get; set; }
        public string ItemId { get; set; }
        public string ItemName { get; set; }
        public string MFGNumber { get; set; }
        public IList<ItemPartViewModel> Parts { get; set; }
        public IList<ItemComponentViewModel> Components{ get; set; }
        public IList<ComponentPartViewModel> ComponentParts { get; set; }
        public IList<ComponentSubCompViewModel> ComponentSubComps { get; set; }
        public IList<SubCompPartViewModel> SubCompParts { get; set; }

        public IList<SubCompSubCompViewModel> SubCompSubComps { get; set; }
        public IList<SubCompSubCompPartViewModel> SubCompSubCompParts { get; set; }

    }

这是显示错误的控制台

为什么我会收到此错误消息?如果我取出“ItemID”字段,我会在脚本末尾得到一个不可见的“意外标识符”。所以我不确定 myData 的问题是什么?

【问题讨论】:

  • ItemId 需要是一个字符串 "106101-5 STL"
  • @Örvar 你这是什么意思?
  • 看起来当myData 对象被填充时,ItemId 属性输入是一个数字、连字符和字母。只是看起来很奇怪而且缺少引号。
  • @Model 语法是什么?它看起来像一些用于构建 JS 代码的服务器端模板语言,但由于值没有正确转义,所以失败了。 ItemViewModel 类是用什么语言编写的?
  • @Bergi PIC_Program_1._0.Models.ItemViewModel 它是用 C# 编写的

标签: javascript c# json


【解决方案1】:

cmets 是对的。您正在尝试在剃须刀中生成一些 javascript。 假设您有这段代码,而 someString 是一个值为“some String”的字符串。如果你的剃须刀是这样的

var myString = @someString;

然后这将被渲染

var myString = some String;

这不是有效的 javascript。要解决此问题,您需要使用引号。像这样

var myString = '@someString';

然后渲染出来

var myString = 'some String';

这是有效的 javascript。

仅当值将是字符串时才使用引号。显然不要管数字、布尔值等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多