2015-02-19 2 views
0

Страница, на которой я работаю, отображает содержимое из базы данных в поле ввода только для чтения. Моя проблема заключается в том, что он отображает любые специальные символы в виде html-кода (то есть: & отображается как &). Как вы получите код для отображения правильно?Как сделать Razor не отображать специальные символы как html

Я использую QuerySingle для подключения к базе данных, не знаю, имеет ли это значение. Я новичок в использовании Razor. Буду признателен за любую оказанную помощь.

код в вопросе:

var queryloan = "SELECT * FROM loans WHERE LoanId = @0"; 
var queryloandata = db.QuerySingle(queryloan, queryformstatus_submitted.doc_loanid); 
<form class="jotform-form" action="[email protected](isadmin)&[email protected](loanid)" method="post" name="form_30905105572145" id="30905105572145" accept-charset="utf-8"> 
<input type="hidden" name="formID" value="30905105572145" /> 
<input type="hidden" name="doc_id" value="@doc_id" /> 
<div class="form-all"> 
    <ul class="form-section"> 
     <li id="cid_3" class="form-input-wide"> 
      <div class="form-header-group"> 
       <h2 id="header_3" class="form-header"> 
        Borrower Sources & Uses Summary 
       </h2> 
        @if (queryformstatus_submitted.doc_approval == "Pending Approval" || queryformstatus_submitted.doc_approval == "Approved") 
        { 
         <text><br /> 
         <br /> 
         <div class="error"> 
          This form has already been submitted and cannot be edited. It is for reference only.</div></text> 
        } 
        @if(userid != queryformstatus_submitted.doc_userid){ 
        <text><br/><br/><div class="error">You may not edit this form. It is for reference only.</div></text> 
       } 

      </div> 
     </li> 
     <li class="form-line" id="id_4"> 
      <label class="form-label-left" id="label_4" for="input_4"> 
       1. Property Name: 
      </label> 
      <div id="cid_4" class="form-input"> 

      <input type="text" class=" form-textbox" id="input_4" name="q4_1Property" size="40" value="@Helpers.checkEmptyPreFill(queryinputvalue,"q4_1Property",queryloandata.LoanName)"/> 
      </div> 
     </li> 

Я не уверен, но я считаю, что это может быть что-то в этой вспомогательной функции, которая вызывает HTML код:

@helper checkEmptyPreFill(IEnumerable<dynamic> queryinputvalue, string field_id, string defaultval, int cloned = 0) { 

var reqValue = queryinputvalue.FirstOrDefault(r => r.field_name.Equals(field_id)); 
var return_value = ""; 
if(reqValue != null){ 
    return_value = reqValue.field_data; 
} else { 
    return_value = defaultval; 
} 

if(cloned == 1){ 
    return_value = ""; 
} 

@return_value 

}

+0

Я предполагаю, что вы хотите отобразить & amp; as &. Вы пытались использовать [HtmlDecode] (https://msdn.microsoft.com/en-us/library/7c5fyk1k%28v=vs.110%29.aspx)? –

+0

Да Я пробовал HtmlDecode. Я попытался использовать переменную во входном значении (то есть: WebUtility.HtmlDecode (queryloandata.LoanName)), но он ничего не делает. Есть что-то, что мне не хватает? Я просто пытаюсь декодировать его в неправильном месте? –

+0

Я получил его для работы как этот '' где 'var htmlEncodedString =" Tom & Jerry ";' –

ответ

0

Помощник razor возвращает объект HelperResult, поэтому вам нужно будет преобразовать его в строку, прежде чем вы сможете позвонить HtmlDecode. Заменить:

@Helpers.checkEmptyPreFill(queryinputvalue,"q4_1Property",queryloandata.LoanName) 

со следующим:

@HttpUtility.HtmlDecode(Helpers.checkEmptyPreFill(queryinputvalue,"q4_1Property",queryloandata.LoanName).ToString()) 

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

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