2015-08-15 2 views
2

Есть ли способ выполнить текст как код Razor? Я сохраняю HTML/JavaScript формы в поле базы данных. Все работает отлично, за исключением того, что я хочу устанавливать значения в полях, когда они втягиваются и отображаются в представлении. Например:Выполнить код бритвы из строки

<p class="form-control-static" id="requested_by">@User.Identity.GetUserName()</p> 

К сожалению, когда втягивается и оказывается, значение поля только текст «@ User.Identity.GetUserName()», в отличие от значения, возвращаемого из этого метода.

Если вам интересно, почему я так поступаю, форма должна быть полностью динамичной, основываясь на том, кто входит в систему. Я обдумал несколько разных решений, но это кажется лучшим. Я определенно открыт для некоторых других идей, если они у вас есть.

Вот те решения, которые я был в состоянии рассмотреть до сих пор:

имен полого Сохранения и атрибуты в базе данных и динамически создать форму с помощью итерации. Проблема здесь в том, что некоторые из полей сгруппированы в полях, у некоторых есть аддоны, некоторые части требуют пользовательских кнопок и т. Д. Это может быть сделано, но я думаю, что это способ чрезмерной разработки и принятия решения.

Создайте форму в HTML/JavaScript/Razor и сохраните все имена полей в базе данных с соответствующими идентификаторами пользователей. Условно покажите поля в зависимости от того, имеет ли пользователь, зарегистрированный в системе, доступ к этому полю. Pseudo: @if(user.FormFields.Contains("field_name") ...

И решение, которое я пытаюсь сейчас: сохранить все HTML/JavaScript/Razor в базе данных как текст и сделать с помощью @Html.Raw(HtmlFromDatabase). Как я уже сказал, все это отлично работает, за исключением кода Razor, который не выполняется.

Любая помощь или предложения очень ценятся.

ответ

0

Использование:

@Html.Raw(System.Web.HttpUtility.HtmlDecode(Model.yourhtmlvalue)) 

ИЛИ

<%= System.Web.HttpUtility.HtmlDecode(yourEncodedHtmlFromYouDatabase) %> 

Подробнее: Here

+0

К сожалению, это приводит к тому же результату. Код Razor в HTML-строке не обрабатывается до рендеринга. – Joe

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