Html.DeleteActionLink helper - PullRequest
       8

Html.DeleteActionLink helper

2 голосов
/ 20 января 2010

У меня есть ссылка для удаления действия, используя диалоговое окно подтверждения Jquery. При нажатии на ссылку для удаления появляется модальное всплывающее окно с вопросом подтверждения. Кнопка Да срабатывает для отправки формы с id = Model.Id

<td>
    <% using (Html.BeginForm<AssessorActionPlanController>(
           c => c.Delete(Model.Id), FormMethod.Post, new { id = Model.Id }))
       { %> <%= Html.AntiForgeryToken()%>
           <a href="#" onclick="ConfirmeDialog('<%= Model.Id.ToString() %>');">
              Delete
           </a>
    <% } %>
</td>

это отлично работает.

Теперь вместо этого я хочу написать Html-помощник, который будет выполнять эту работу, что-то вроде

<td>
    <%= Html.DeleteActionLink<ControllerName>(
        c => c.Delete(Model.Id), "Delete"
    ); %>
</td>

JS:

$('#deleteDialog').html('Are you sure you want to delete this item ?');
$('#deleteDialog').dialog({
    autoOpen: false,
    modal: true,
    resizable: false,
    buttons: {
        'Yes': function() {
            $(this).dialog('close');
            $("form[id='" + submitFormHandler + "']").submit();

        },
        'No': function() { $(this).dialog("close"); }
    }
});

Так можно ли написать такой помощник и, если возможно, дайте несколько советов, спасибо

1 Ответ

1 голос
/ 20 января 2010

Вам необходимо написать метод расширения для класса HtmlHelper. Примерно так:

public class HtmlExtensions
{
    public static string DeleteActionLink<TController>(this HtmlHelper helper, Expression<Action<TController>> action, string text)
    {
        // Construct output and return string
    }
}
...