ASP.NET MVC Метод вызова контроллера DevExpress - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь вызвать метод на контроллере, но он дает мне нулевую ошибку.Я пытался сделать getKeyValue для кода, но он не будет работать.Я не знаю, что я делаю не так.Спасибо за любую помощь.

Код контроллера

public  ActionResult EditRecord(int id)
{
    int x = id;

    return PartialView("~/Views/FileMaintenance/Principal/EditPrincipal.cshtml", PrincipalInfo);
}

DevExpress GridView код

settings.Columns.Add(column =>
        {
            column.FieldName = "Unbound";
            column.Caption = "Action";
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
            column.ReadOnly = false;

            column.ColumnType = MVCxGridViewColumnType.ButtonEdit;
            column.SetDataItemTemplateContent((c) =>
            {

                Html.DevExpress().Button(b =>
                {
                    b.Name = "btnVE" + c.KeyValue;
                    b.Text = "V/E";
                    b.UseSubmitBehavior = false; // prevent default submit action
                    b.EnableClientSideAPI = true; // add this line if not sure
                    b.ClientSideEvents.Click = string.Format("function(s, e) {{ window.location = '{0}?key={1}'; }}",
                            DevExpressHelper.GetUrl(new { Controller = "ViewPrincipal", Action = "EditRecord" }),
                            c.KeyValue.ToString());
                }).GetHtml();
            });
        });

Ошибка

Словарь параметров содержит нользапись для параметра 'id' ненулевого типа 'System.Int32' для метода 'System.Web.Mvc.ActionResult EditRecord (Int32)' в 'WMS_Web.Controllers.FileMaintenance.ViewPrincipalController'.Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры

1 Ответ

0 голосов
/ 08 октября 2018

Вы не указали параметр id в методе DevExpressHelper.GetUrl.Вы должны установить это.В приведенном ниже примере я поместил значение 1. Я не понимаю, почему вы помещаете «ключ» в строку запроса, когда обязательным является «id».Изменение ключа на id также должно решить вашу проблему.

settings.Columns.Add(column =>     
{
        column.FieldName = "Unbound";
        column.Caption = "Action";
        column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
        column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
        column.ReadOnly = false;

        column.ColumnType = MVCxGridViewColumnType.ButtonEdit;
        column.SetDataItemTemplateContent((c) =>
        {

            Html.DevExpress().Button(b =>
            {
                b.Name = "btnVE" + c.KeyValue;
                b.Text = "V/E";
                b.UseSubmitBehavior = false; // prevent default submit action
                b.EnableClientSideAPI = true; // add this line if not sure
                b.ClientSideEvents.Click = string.Format("function(s, e) {{ window.location = '{0}'; }}",
                        DevExpressHelper.GetUrl(new { Controller = "ViewPrincipal", Action = "EditRecord", id = c.KeyValue.ToString() }));
            }).GetHtml();
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...