Скрыть или отключить MVC3 ActionLinks в зависимости от значения ячейки - PullRequest
0 голосов
/ 23 апреля 2011

MVC3 создал для меня следующую таблицу

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Author)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Comment)
    </td>
     <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.UserCommentID }) |
        @Html.ActionLink("Details", "Details", new { id=item.UserCommentID }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.UserCommentID })
    </td>
</tr>

}

Я уверен, что все видели такое уже миллион раз.

Кто-нибудь знает, существует ли какой-либо способ скрытия или отключения ссылок ссылок в зависимости от элемента. Автор.

(я только хочу, чтобы автор мог редактировать или удалять свои комментарии)

Я думаю, что ответ может лежать на jQuery, но я буду очень рад любому решению.

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 23 апреля 2011

как то так

@if(item.Author == loggedInUserIdOrSomethingYouWantToCompareTo) {
    <text>
    @Html.ActionLink("Edit", "Edit", new { id=item.UserCommentID }) |
    @Html.ActionLink("Details", "Details", new { id=item.UserCommentID }) |
    @Html.ActionLink("Delete", "Delete", new { id=item.UserCommentID })
    </text>
}

очевидно, вы все равно должны проверить на стороне контроллера, чтобы убедиться, что у пользователя есть разрешения (было бы легко «подделать» эти URL).

1 голос
/ 23 апреля 2011

В дополнение к комментариям Марека - пожалуйста, проверьте текущего пользователя, когда он публикует / получает вашу страницу редактирования, чтобы убедиться, что у него есть разрешения на это.Я мог бы легко подделать ссылку, чтобы получить доступ к чему-то, к чему я должен иметь доступ, или даже изменить любые скрытые значения формы, которые вы должны изменить в модели при редактировании чего-либо.

...