Как отобразить атрибут HTML из представления Razor - PullRequest
1 голос
/ 16 декабря 2010

Я хотел бы использовать одно и то же частичное представление для создания, редактирования и просмотра сведений, чтобы избежать дублирования структуры набора полей для объекта.Затем, в зависимости от того, какое представление визуализирует частичное представление, я хотел бы добавить класс «только для чтения» в div, окружающий мой набор полей, и обработать, чтобы фактические поля ввода были доступны только для чтения на клиенте, используя css или jQuery, илибез разницы.Как я могу указать в своем представлении Razor, что мне нужно добавить этот класс в div "item-details"?

<div class="item-details">
    <fieldset>
        <legend>Product Details</legend>
        @Html.HiddenFor(model => model.DetailItem.ProductId)
        <div class="editor-label">
            @Html.LabelFor(model => model.DetailItem.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.DetailItem.Name)
            @Html.ValidationMessageFor(model => model.DetailItem.Name)
        </div>
        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
</div>

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

У меня обычно есть переменная в модели, которая будет указывать, можно ли редактировать ваши данные, и использовать ее следующим образом:

<div class="item-details @(Model.IsReadOnly ? "read-only" : "")">

Если у вас его нет на модели, вы можете использовать ViewBag. В родительском представлении:

@{
    ViewBag.IsModelReadOnly = true;
}

В вашем частичном представлении:

<div class="item-details @(ViewBag.IsModelReadOnly ? "read-only" : "")">

Ваш вывод html для представления только для чтения будет

<div class="item-details read-only">

Затем вы можете получить доступ к div через jQuery и делать то, что вам нужно: $(".read-only")...

0 голосов
/ 30 декабря 2010

Почему бы просто не использовать

@Html.DisplayFor (model => model. [WhatEver Property, который вы пытаетесь показать])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...