Помните, что все между <% и%> интерпретируется как код C #, поэтому вы на самом деле пытаетесь оценить следующую строку C #:
Url.Action("Report", "Survey", new { id = ' + selectedRow + ' } )
C # считает, что одинарные кавычки окружают символьный литерал, поэтому вы получаете сообщение об ошибке (символические литералы могут содержать только один символ в C #)
Возможно, вы могли бы сгенерировать URL один раз в вашем скрипте страницы - где-нибудь на вашей странице HEAD, сделайте следующее:
var actionUrl =
'<%= Url.Action("Report", "Survey", new { id = "PLACEHOLDER" } ) %>';
Это даст вам строку Javascript, содержащую нужный вам URL, но с PLACEHOLDER вместо числа. Затем настройте обработчики кликов следующим образом:
window.open(actionUrl.replace('PLACEHOLDER', selectedRow));
т.е. после запуска обработчика вы найдете значение PLACEHOLDER в предварительно рассчитанном URL-адресе и замените его выбранной строкой.