【问题标题】:Html.DeleteActionLink helperHtml.DeleteActionLink 帮助程序
【发布时间】:2010-01-21 02:35:45
【问题描述】:

我有一个使用 Jquery 对话框确认消息删除操作的链接。单击删除链接,将显示一个带有确认问题的模式弹出窗口。按钮 Yes 被触发以提交 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"); }
    }
});

那么是否可以编写这样的助手,如果可以,请提供一些提示,谢谢

【问题讨论】:

    标签: .net asp.net-mvc jquery-ui html-helper


    【解决方案1】:

    您需要为 HtmlHelper 类编写一个扩展方法。像这样的:

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

    【讨论】:

    • 这很清楚,但是谁使用 BeginForm 以及如何创建那个 href?你的代码://构造输出并返回字符串 - 这是主要问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2014-06-04
    • 2010-11-02
    相关资源
    最近更新 更多