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

0

Я хочу создать вывод с несколькими строками данных в заполненных текстовых ящиках, которые являются начальными только для чтения, каждая с кнопкой "Редактировать" в конце. Это редактирование позволит этой строке стать редактируемой, оставаясь на одной странице (без нового окна, которое по умолчанию является MVC), а затем, когда все изменения завершены, кнопка отправки внизу страницы сохранит данные в базе данных. @Html.DisplayFor() будет отображаться только как чтение, но для его редактирования создается новая страница.

Если @Html.DisplayFor() то нажатие на edit может преобразовать эту строку из @Html.DisplayFor() в @Html.EditorFor() это было бы здорово.

Вот некоторые фрагменты кода:

@model IEnumerable<EnterAdv.Models.Person>
@using (Html.BeginForm()){
<fieldset>
    <table>
        @foreach (var item in Model)
        {
            <tr>
                <td 
                    class="styleDeptNames">@Html.EditorFor(modelItem => item.FirstName) 
                                            @Html.ValidationMessageFor(model => item.FirstName)
                </td>
                <td 
                    class="styleFMLNames">@Html.EditorFor(modelItem => item.LastName)
                                            @Html.ValidationMessageFor(model => item.LastName)
                </td>
                <td class="styleEdit"><input type="button" value="Edit"/></td>     
            </tr>
        }
    </table>
</fieldset>

Как вы можете видеть сейчас, это EditorFor(). Если у этого метода была перегрузка, которая позволяла переключаться между чтением и редактировать, это было бы здорово, но я не вижу этого. Но в нижней строке я должен остаться на одной странице для редактирования.

Я использую ActionResult Index() View, так как он перечисляет данные таблицы.

Теги:
razor
asp.net-mvc-4

1 ответ

0

вы можете переключать чтение только с помощью jquery

$('.clsInput').attr('readonly', 'readonly');

и удалить его

$('.clsInput').removeAttr('readonly');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню