2016-08-12 5 views
0

Я использую Razor в качестве механизма текстового шаблона, и мне нужно инициализировать несколько переменных в верхней части моего файла cshtml.Razor: любой способ иметь блок кода без вставки новой строки в вывод?

@{ModelContext M = Model;} 

Проблема заключается в том, что вышеуказанное утверждение добавляет к выходу выражение \ r \ n.

Данное поведение относится к любому типу продукции. Я ожидаю, что мне нужно использовать другой тег Razor или синтаксис, который не станет частью вывода. Например, @using не производит никакого вывода.

Есть ли способ иметь блок кода без вставки новой строки в вывод?

+0

где он добавляет? Каков ваш результат? – Shyju

+0

Тег, который я упомянул, становится \ r \ n. Это относится к любому типу вывода. Я ожидаю, что мне нужно использовать другой тег Razor или синтаксис, который не станет частью вывода. Например, @using не производит никакого вывода. –

ответ

0

@using инициирует функцию text/string writer, которая заменяет оператор кодом html.

@{var M = Model;} 

Является C# оператор только так, когда RazorEngine компилирует класс, он не удаляет @{} заявления из скомпилированного шаблона, как это может иметь поток на эффекты при создании класса.

Таким образом, единственным реальным способом решения этой проблемы является анализ строки, возвращаемой после запуска шаблона, и here - пример того, как это сделать.

+0

Есть ли какой-либо синтаксис Razor, чтобы исключить всю строку из вывода при запуске кода C# внутри? –

+0

К сожалению, я не знаю. – timkly

Смежные вопросы