Операция CRUD в asp. net core MVC с использованием сетки кендо и хранимых процедур, а также с шаблоном Repository. - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь выполнить операцию CRUD в asp. net core MVC, Когда я пытаюсь вставить данные в сетку (Создать функцию), VS выдает мне ошибку, которая не может быть нулевой! Я думаю, что проблема в том, что пользовательский интерфейс не отправляет мои входные данные на SQL или другие вещи, которые я не знаю!

Это часть моего контроллера с оператором Create!

public ActionResult AddRegistry([DataSourceRequest]DataSourceRequest request,Registry registry)
        {
            var parameter = new DynamicParameters();

            parameter.Add("@Reg_Name",registry.Reg_Name);
            parameter.Add("@Country", registry.Country);
            parameter.Add("@Reg_Date", registry.Reg_Date);

            parameter.Add("@Reg_Disc", registry.Reg_Disc);

            _unitOfWork.SP_Call.Execute(SD.usp_AddRegistry, parameter);
            _unitOfWork.Save();
            return (Json(request));

        }

Это мой взгляд!

@(Html.Kendo().Grid<MSDACE.Models.DbDesign.Registry>()
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.Reg_ID).Width(50);;
        columns.Bound(p => p.Reg_Name).Width(180);
        columns.Bound(p => p.Reg_Date).Width(180);
        columns.Bound(p => p.Country).Width(180);
        columns.Bound(p => p.Reg_Disc).Width(120);

        columns.Command(command => command.Destroy()).Width(90);
    })
    .ToolBar(toolbar =>
    {
        toolbar.Create();
         toolbar.Save();

    })
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Pageable()
    .Navigatable()
    .Sortable()
    .Groupable()
    .Filterable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .PageSize(20)
        .ServerOperation(false)
        .Events(events => events.Error("error_handler"))
        .Model(model =>
        {
            model.Id(p => p.Reg_ID);
            model.Field(p => p.Reg_ID).Editable(false);

        })
        .Create("AddRegistry", "Test")
        .Read("GetAllRegistry", "Test")

    )
     .Resizable(resize => resize.Columns(true))  
)

также SP -


ALTER Procedure [dbo].[usp_AddRegistry]
--@Reg_ID int,
@Reg_Name nvarchar(max),
@Country nvarchar(max),
--@Reg_Date datetime2(7),
@Reg_Disc nvarchar(max)

as

begin

insert into dbo.Registry (
--Reg_ID,
Reg_Name,
Country,
Reg_Date,
Reg_Disc)

values (
--@Reg_ID,
@Reg_Name,
@Country,
GETDATE(),
@Reg_Disc)

end

1 Ответ

0 голосов
/ 05 апреля 2020

Я думаю, что вы пропускаете передачу модели (она может быть пустой) и toDataSourceResult в вашем контроллере.

Вы можете посмотреть код контроллера для демонстрации встроенного редактирования Kendo, например: https://demos.telerik.com/aspnet-mvc/grid/editing-inline

...