Вызов метода с типом возврата void в выражении привязки данных

#c# #asp.net #data-binding

#c# #asp.net #привязка данных

Вопрос:

Возможно ли вызвать метод, возвращающий значение void, в выражении привязки данных? (Например, для установки глобальной переменной.)
Следующее не компилируется:

 <%# setCurrent(false) %>  // Error: Cannot implicitly convert type 'void' to 'object'
  

Я мог бы изменить тип возвращаемого значения метода (например, заставить его возвращать нулевой объект), но это было бы мошенничеством.

Ответ №1:

Весь смысл привязки данных заключается в том, что значение возвращается для отображения. (отсюда ошибка)

Просто верните пустую строку 🙂

Ответ №2:

Я думаю, что постановка точки с запятой после вашего утверждения должна сделать его семантически правильным:

 setCurrent(false);
  

Это не «привязка данных» как таковая, но это работает.

Комментарии:

1. Мне нужно что-то, что работает в разметке, а не в коде или блоке скрипта.

Ответ №3:

Это не очень элегантно, но выполняет свою работу:

 <%# new Func<string>(() => { SomeVoidMethod(); return ""; })() %>