Как говорится в сообщении об ошибке, методы расширения не могут быть динамически отправлены. Это просто не поддерживается в .NET. Это не имеет ничего общего с ASP.NET MVC или Razor. Попробуйте написать метод расширения для некоторого типа, который принимает динамический аргумент, а затем попробуйте вызвать этот метод расширения, передав ему динамическую переменную, и вы получите ошибку времени компиляции.
Рассмотрим следующий пример консольного приложения, который иллюстрирует это:
public static class Extensions
{
public static void Foo(this object o, dynamic x)
{
}
}
class Program
{
static void Main()
{
dynamic x = "abc";
new object().Foo(x); // Compile time error here
}
}
Так что вам нужно разыграть:
@Html.SimpleHelper((string)ViewBag.SomeValue)
На самом деле, как сказал Адам, вам нужно использовать строго типизированную модель представления и никогда не использовать ViewBag. Это одна из миллионов причин, по которым ViewBag не следует использовать.