2010-01-20 51 views
2

我有一個使用Jquery對話框確認消息刪除動作的鏈接。點擊刪除鏈接,模式彈出窗口顯示一個確認問題。按鈕是觸發提交表格id = Model.IdHtml.DeleteActionLink helper

<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

您需要爲HtmlHelper類編寫擴展方法。類似這樣的:

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

這很明顯,但是誰使用BeginForm以及如何創建該href? 你的代碼:/ /構造輸出和返回字符串 - 這是主要問題:) – isuruceanu 2010-01-20 13:44:41