2012-12-13 98 views
0

我有一個Kendo網格模板內的Ajax.ActionLink。我想單擊鏈接,執行操作,並且不會離開當前視圖。我使用Ajax鏈接進行確認和成功消息,但我也測試了正常的A和Html.ActionLink。在每種情況下,都會執行ActionLink並返回一個空白頁面。 ActionLink本身調用一個導出+電子郵件功能。KendoUI網格列模板ActionLink

此外,Ajax.ActionLink不執行其「確認」命令,但不會發生Javascript錯誤。 OnSuccess當然不會執行。 Kendo Grid之外的Ajax.ActionLink不執行其中的任何一個。

@(Html.Kendo().Grid(Model.Contacts) 
    .Name("contacts") 
    .Columns(columns => 
    { 
     columns.Bound(e => e.FirstName); 
     columns.Bound(e => e.LastName); 
     columns.Bound(e => e.Email); 
     columns.Template(@<text></text>).ClientTemplate(
      @Ajax.ActionLink("Email Report", "Export", new { EquipmentId = @Model.EquipmentId, WeekDate = @Model.WeekStart.ToString("yyyy-MM-dd"), EmailAddress = "#=Email#" }, new AjaxOptions { HttpMethod = "POST", Confirm = "Are you sure?", OnSuccess = "emailSuccess" }).ToHtmlString() 
      ); 
    }) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .ServerOperation(false) 
     .Model(model => { model.Id(e => e.ContactId);}) 
    ) 
) 

控制器動作:

public ActionResult Export(int EquipmentId, string WeekDate, string EmailAddress) 
{ 
    ... 
    return new Extensions.Report.XlsExportResult(...); 
} 

行動分機:

public class XlsExportResult : ActionResult 
{ 
    ... 
    public override void ExecuteResult(ControllerContext context) 
    { 
     ... 
    } 
} 

回答

2

的Ajax.ActionLink方法工作...它不工作的原因是我是個白癡.. 。並且正確的腳本並未捆綁在Ajax中。

bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include("~/Scripts/jquery.unobtrusive*"));