Добавить контрольный столбец в сетке MVC 5 [дубликат]

Собственно, это именно то, чего вы ожидаете. Давайте разложим, что здесь происходит:

Вы пишете

lst = [[1] * 4] * 3

Это эквивалентно:

lst1 = [1]*4
lst = [lst1]*3

Это означает, что lst - это список с 3 элемента, указывающие на lst1. Это означает, что две следующие строки эквивалентны:

lst[0][0] = 5
lst1[0] = 5

Поскольку lst[0] - это только lst1.

Чтобы получить желаемое поведение, вы можете использовать понимание списка:

lst = [ [1]*4 for n in xrange(3) ]

В этом случае выражение переоценивается для каждого n, что приводит к другому списку.

14
задан RandomUser 5 June 2014 в 13:42
поделиться

1 ответ

Это разрешило задачу

columns.Add(model => model.productName).Titled("Name")
 .Filterable(true).Sanitized(false).Encoded(false).
   RenderValueAs(model => Html.ActionLink(model.productName, 
     "ViewProduct", "Showcase", new { productID = model.productID }, null)
       .ToHtmlString());
17
ответ дан RandomUser 18 August 2018 в 01:26
поделиться
  • 1
    отличный вопрос, отличный ответ! – Teoman shipahi 19 July 2015 в 01:48
  • 2
    Хорошая находка. Мне не нужен ToHtmlString, но мне не хватало Sanitized (false) и Encoded (false). Добавление этих двух методов в цепочку фиксировало мою проблему. – barrypicker 18 March 2016 в 17:49
  • 3
    как насчет уязвимости XSS :) – Hussein Zawawi 10 April 2017 в 04:24
Другие вопросы по тегам:

Похожие вопросы: