Переменная .NET Core не существует / пуста в поле зрения - PullRequest
1 голос
/ 15 марта 2019

У меня есть эта ViewModel, которую я передаю своему виду:

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

Когда я отправляю свою форму, FormPropertiesList будет содержать массив JSON, который будет обрабатываться на стороне сервера.

Однакопроблема в том, что когда я загружаю страницу, FormPropertiesList пуст.Это означает, что я не смогу разобрать его, если он не содержит никаких данных.

Сейчас я получаю эту ошибку

Uncaught SyntaxError: Неожиданный токен! ==

Это мой код jquery:

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

В консоли я вижу, что @ Model.FormPropertiesList пуст.Не ноль или "", а пустое.

Я пытался объявить его как нулевой сервер перед загрузкой страницы, но возникает та же проблема.

1 Ответ

1 голос
/ 15 марта 2019

Учитывая, что @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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...