Насколько я знаю, XSS - это проблема, когда вы получаете какой-то вклад от пользователя, мне не ясно, почему вы не должны доверять ответу от вашего собственного контроллера? То, что вы делаете, очень типично, и я видел бесчисленное количество обучающих уроков (например, c-sharpcorner , aspsnippets или dotnethowts и т. Д.).
]
Кроме того, ASP.NET MVC View Engine по умолчанию кодирует HTML . Я не уверен, как вы визуализируете свой частичный вид, но если вы не используете @Html.Raw
, вы потенциально дважды закодируете результат.
Но если вы хотите закодировать результат HTML, вы можете экранировать свою строку HTML, см. Этот ответ
Если Вы хотите сохранить tablesorter, существует модификация, которую я использовал с этой целью доступный здесь
После включая его, Вы делаете свою секунду (расширяемый ребенок), строка имеет класс "расширять-ребенок", и tablesorter будет знать для хранения строки соединенной с ее родителем (предыдущая строка).
Ужасная фиксация вместо того, чтобы использовать вышеупомянутое включает класс parentId css определения и класс childId css для родительских и дочерних строк и затем использование виджета для приспосабливаний. На всякий случай кто-либо еще натыкается на эту проблему. Это - ясно не лучший код вообще, но это работает на меня!
$("tbody tr[class^='parent']", table).each(function() {
$(this).after($("tbody tr[class^='child"+$(this).attr("class").substring(6)+"']", table));
});