Использование модели ASP.net в коде JavaScript. Любой другой подход, кроме использования <text>? - PullRequest
1 голос
/ 05 октября 2019

В настоящее время я получаю некоторые данные от моих контроллеров, которые я использую в моем файле cshtml. Технически эти данные должны использоваться только javascript. Итак, я делаю это

    $(document).ready(function () {

    var responses = [];

    @foreach (var logItem in @Model.items)
    {
        <text>
        action = '@Html.Raw(@logItem.ActionString)';   
        actions.push(action);  
        </text>
    }

   SomeJSFunciton(actions);
});

Вышесказанное решает проблему, однако есть две проблемы с этим

  1. Текст всего этого пишется на странице источника в $(document).ready function
  2. Я бы хотел вызвать функцию js для действия перед вставкой в ​​массив. Я не уверен, как это сделать?

Есть какие-нибудь предложения о том, как лучше всего это сделать?

1 Ответ

2 голосов
/ 05 октября 2019

Смешивание такого кода станет болезненным по мере увеличения сложности. Что-то, с чем мне повезло, это кодирование данных сервера в JSON, например, так:

var myServerData = @Html.Raw(Json.Encode(myServerData));

Таким образом, вы получите данные вашего сервера в формате JSON и сможете написать весь свой код. в JavaScript. Таким образом, ваш код станет:

for(var i = 0; i < myServerData.length; i++){
    action = myServerData[i]['ActionString'];
    // Here would be where you would call your function before inserting into array
    actions.push(action);
}
SomeJsFunctions(actions);
...