@helper GetString()
{
@string.Format("string_{0}","foo");
}
Приведенный выше код не компилируется в ASP.NET MVC 4.0 с Razor 2.0.
Это потому, что бритва двигатель будет видеть, что у вас есть конструкция (например, строка в вашем примере), и вы используете @
избыточность. Это не скомпилируется, как вы это пережили.
Но если удалить «@» перед string.Format, код компилируется, но строка не будет outputed к сгенерированной HTML.
Ничего не выйдет, потому что вы не сказали движку бритвы, что писать. Вы только что сделали код. Это похоже на выполнение в C# и делает string.Format
и не присваивает его переменной.
Я Walkaround это с ниже код, введя переменную
В связи с тем, что я уже упоминал ранее, как только вы ввели переменную и написал, теперь вы говорите бритвы двигатель до вывести что-то. Это похоже на AC# консольного приложения, в котором:
- вы сделали
string.Format
: string.Format("string_{0}","foo");
- присвоить свой вывод переменной:
var url = string.Format("string_{0}","foo");
- напечатанной переменной:
@url
Вы можете read this blog post, чтобы лучше понять, как работает двигатель бритвы в отношении использования @
.
Теперь альтернативу тому, что вы делаете, вы можете сделать это:
@helper GetString()
{
<text>@string.Format("string_{0}", "foo")</text>
}