Вставить в объект JavaScript внутри бритвы foreach? - PullRequest
0 голосов
/ 07 июля 2019

В то время как я перебираю список C # в частичном представлении, мне нужно добавить к объекту JavaScript, я пробовал <text></text> и @:, но они просто отображают простой текст JavaScript, вот полный частичный просмотр:

@using Resources;
<script>
    var resources = {};
@{
    Dictionary<string, string> resx = new Dictionary<string, string>();
    foreach (var item in typeof(AppResources).GetProperties().Where(p=>p.PropertyType==typeof(string)))
    {
        resx.Add(item.Name, item.GetValue(item).ToString());
        var key = item.Name;
        var value = item.GetValue(item).ToString();
        @:resources[@key] = @value;
    }
}
    console.log("resources_BEGIN");
    console.log(resources);
    console.log("resources_END");

</script>

это отображается в источнике HTML:

<script>
    var resources = {};
    resources[lbAccountSettings] = Account settings;
    resources[lbActivate] = Activate;
    resources[lbArabicName] = Arabic Name;
    resources[lbAreas] = Areas;
    console.log("resources_BEGIN");
    console.log(resources);
    console.log("resources_END");
</script>

1 Ответ

0 голосов
/ 07 июля 2019

Попробуйте: var jsvariable=@Html.Raw(Json.Encode(<your_charp_variable>))

Отредактировано :

<script>
 var resources = {}
    @{ 
        Dictionary<string, string> resx = new Dictionary<string, string>();

        foreach (var item in typeof(AppResource).GetProperties().Where(p=>p.PropertyType==typeof(string)))
        {
            resx.Add(item.Key, item.Value);
        }
    }
    resources=@Html.Raw(Json.Encode(resx));
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...