2014-11-10 4 views
7

Когда я просто удаляю поля редактора, которые я не хочу видеть пользователем в представлении, их данные становятся нулевыми, я хочу сохранить данные, но я не хочу, чтобы пользователь редактировал их.Как сделать @ Html.EditorFor невидимым?

<div class="editor-label"> 
       @Html.LabelFor(model => model.Name) 
      </div> 
      <div class="editor-field"> 
       @Html.EditorFor(model => model.Name) 
       @Html.ValidationMessageFor(model => model.Name) 
      </div> 


      <div class="editor-label"> 
       @Html.LabelFor(model => model.parent_directory) 
      </div> 
      <div class="editor-field"> 
       @Html.DisplayFor(model => model.parent_directory) 
      </div> 

      <p> 
       <input type="submit" value="Add" /> 
      </p> 

@ Html.EditorFor Я имею в виду это model.parent_directory. Может ли кто-нибудь предложить решение, которое не связано с js? Я попытался использовать DisplayFor вместо EditorFor, и я все еще получаю нулевое значение.

+0

Почему вы не используете скрытое поле? – Haris

+0

Я не сейчас как. –

+0

что-то вроде этого, возможно, @ Html.HiddenFor (m => m.hiddevalue), помогает ли это ответить? @DDavid – Haris

ответ

9

принять Пожалуйста, посмотрите на этой странице MSDN. http://msdn.microsoft.com/en-us/library/system.web.mvc.html.editorextensions.editorfor(v=vs.118).aspx

В соответствии с этой страницей вы не можете предоставлять атрибуты html в качестве параметра по понятным причинам. Потому что EditorFor может быть полем input или select, а их атрибуты html отличаются друг от друга.

Если вы хотите просто скрыть это временно и показать его позже пользователю, вы можете использовать @Html.TextBoxFor. Вы можете узнать больше о TextBoxFor перегрузкам на http://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions.textboxfor(v=vs.118).aspx

например:

@Html.TextBoxFor(model => model.Name, new {style = 'display:none'}) 

, если вы хотите, чтобы эти детали скрыты на протяжении всего процесса, вы можете использовать @Html.HiddenFor

например

@Html.HiddenFor(model => model.Name) 
5

Используйте скрытые поля для этого:

@Html.HiddenFor(model => model.Name) 
1

Если вы хотите отобразить поля и не позволяют пользователям редактировать, вы можете сделать их только для чтения ..

@Html.EditorFor(model => model.Name, new {@readonly = "readonly" }) 

Если вы не хотят, чтобы показать поля для пользователя, и просто необходимо для хранения данных можно использовать

@Html.HiddenFor(model => model.Name) 
1

Вы можете сделать это с помощью:

@Html.Editor("WContractID", new { htmlAttributes = new { @class = "form-control", @style = "display: none" } }) 
+0

Отформатируйте свой раздел кода и объясните вокруг своего ответа. Обратите внимание, что ваш ответ выглядит так же, как высокопринятый/принятый ответ на этот вопрос. Поэтому улучшите свой ответ. – mmushtaq

+0

Этот ответ противоречит принятому ответу и должен быть принятым ответом. – mxmissile

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