【问题标题】:Telerik Mvc Grid and AntiForgeryTokenTelerik Mvc 网格和 AntiForgeryToken
【发布时间】:2011-10-09 14:41:08
【问题描述】:

我正在尝试使用我的网格进行设置,以便每个 ajax 帖子的每个操作都包含一个防伪令牌。我的网格是这样设置的:

 @(Html.Telerik().Grid(Model)
     .Name("Folks")
     .Sortable(x => x.SortMode(GridSortMode.SingleColumn))
     .PrefixUrlParameters(false)
     .Footer(true)
     .Pageable(x => x.PageSize(25).Total((int)ViewData["total"]))
     .DataBinding(dataBinding => dataBinding.Ajax())
     .Columns(columns =>
     {
        columns.Bound(o => o.FirstName).Width(120).Title("First Name");
        columns.Bound(o => o.LastName).Width(120).Title("Last Name");
     })
     .Selectable()
     .ClientEvents(events =>
     {
         events.OnDataBinding("Test");
     })
)

OnDataBinding (Test) 的处理程序如下所示:

    <script type="text/javascript">
      function Test(e) {
          var valTokenValue = $("input[name=__RequestVerificationToken]").val();
          e.data = { __RequestVerificationToken: valTokenValue };
      }
    </script>

我认为参数 (e) 有一个名为 data 的属性,它接受一个值字典。但是,FireBug 一直抱怨说“数据未定义”。有什么想法可以在每个请求中包含令牌吗?我正在使用版本 2011.Q2.712。谢谢。

【问题讨论】:

    标签: telerik antiforgerytoken


    【解决方案1】:

    如果没有要附加的对象,它将无法附加您的令牌。创建一个 Json 对象并将其设置为 data 如果 data 为 null/length=0/undefined (我知道,检查过度)。我在一个单独的函数中进行了检查,因此我不必在每次进行 ajax 调用时都重复检查。

    (function (TelerikGrid, $, undefined) {
    TelerikGrid.OnDataBinding = function (e) {
        e.data = AntiForgery.AddToken(e.data);
    };})(window.TelerikGrid = window.TelerikGrid || {}, jQuery);
    
    
    (function (AntiForgery, undefined) {
    AntiForgery.AddToken = function (data) {
        data = ((data == null || data.length == 0 || data == undefined) ? { } : data);
        data.__RequestVerificationToken = $('#__AjaxAntiForgeryForm input[name=__RequestVerificationToken]').val();
        return data;
    };
    })(window.AntiForgery = window.AntiForgery || {});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多