чтение ajax. Действие не вызывается, если Model.customerId имеет десятичное значение - PullRequest
0 голосов
/ 17 мая 2018

Я использую Telerik UI для вкладки ASP.Net MVC Grid. У меня есть две вкладки. Проблема заключается в том, что если model.customerId имеет десятичное значение, то он не вызывает действия чтения, такие как (.Read (read => read.Action ("UserVouchers_Read", "Admin", new {customerId = "# = CustomerId #"}) )))

поэтому, если customerId равен «123456», то вызывается действие контроллера «UserVouchers_Read».

если customerId равен «123456.123», то действие контроллера «UserVouchers_Read» не вызывается, вызывается.

Ниже мой код в представлении. Пожалуйста, подскажите, что здесь может быть не так.

@(Html.Kendo().Grid<BSD.VoucherRedemption.Model.UserDataVM>()
             .Name("Users")
             .DataSource(dataSource => dataSource
                   .Ajax()
                   .ServerOperation(false)
                   .Read(read => read.Action("Users_Read", "Admin"))
                   .Events(events => events.Error("onError"))
               )
             .Columns(columns =>
             {
                 columns.Bound(userData => userData.UserDataId).Visible(false);
                 columns.Bound(userData => userData.CustomerId).Title("Client ID");
                 columns.Bound(userData => userData.FirstName);
                 columns.Bound(userData => userData.CreatedDate).Title("Created Date");
             })
             .Pageable(pager => pager.Input(true).PageSizes(true))
             .Sortable()
             .Scrollable()
             .Filterable()
             .ClientDetailTemplateId("template")
             .HtmlAttributes(new { style = "height:700px;" })
)

<script id="template" type="text/kendo-tmpl">
    @(Html.Kendo().TabStrip()
            .Name("tabStrip_#=CustomerId#")
            .SelectedIndex(0)
            .Animation(animation => animation.Open(open => open.Fade(FadeDirection.In)))
            .Items(items =>
            {
                items.Add().Text("Voucher Information").Content(@<text>
            @(Html.Kendo().Grid<BSD.VoucherRedemption.Model.UserVoucherVM>()
                        .Name("voucher_#=CustomerId#") // template expression, to be evaluated in the master context
                        .Columns(columns =>
                        {
                            columns.Bound(v => v.UserVoucherId).Width(90).Title("Voucher ID").Filterable(false);
                            columns.Bound(v => v.VoucherNo);
                            columns.Bound(v => v.VoucherValue).Visible(false);
                            columns.Bound(v => v.IsVoucherRedeemedStr).Title("Is Voucher Redeemed");
                            columns.Bound(v => v.CreatedDate).Title("Assigned Date");
                        })
                        .DataSource(dataSource => dataSource
                            .Ajax()
                            .PageSize(5)
                            .ServerOperation(false)
                            .Read(read => read.Action("UserVouchers_Read", "Admin", new { customerId = "#=CustomerId#" }))
                        )
                        .Pageable()
                        .Sortable()
                        .ToClientTemplate())
                </text>
                );
                items.Add().Text("Email Activity").Content(@<text>
            @(Html.Kendo().Grid<BSD.VoucherRedemption.Model.UserVoucherVM>()
                        .Name("email_#=CustomerId#") // template expression, to be evaluated in the master context
                        .Columns(columns =>
                        {
                            columns.Bound(v => v.UserVoucherId).Width(50).Title("Email ID").Filterable(false);
                            columns.Bound(v => v.CreatedDate).Width(50).Title("Email Sent Date");
                        })
                        .DataSource(dataSource => dataSource
                            .Ajax()
                            .PageSize(5)
                            .ServerOperation(false)
                            .Read(read => read.Action("UserEmails_Read", "Admin", new { customerId = "#=CustomerId#" }))
                        )
                        .Pageable()
                        .Sortable()
                        .ToClientTemplate())
                </text>
                );
            })
            .ToClientTemplate())
</script>

1 Ответ

0 голосов
/ 17 мая 2018

Могу ли я предложить вам указать строковое значение идентификатора клиента при отправке десятичных значений.

data: JSON.stringify({ CustomerId="#customerId" })

Это потому, что десятичное число считается целым числом по умолчанию для связующего.

...