Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 带有剑道UI网格的ASP.NET MVC无法创建更新和销毁_Asp.net Mvc_Kendo Ui - Fatal编程技术网

Asp.net mvc 带有剑道UI网格的ASP.NET MVC无法创建更新和销毁

Asp.net mvc 带有剑道UI网格的ASP.NET MVC无法创建更新和销毁,asp.net-mvc,kendo-ui,Asp.net Mvc,Kendo Ui,我正在尝试使用剑道UI构建ASP.NET应用程序,当我想要创建、更新和销毁时,我会遇到一个问题。我构建它时没有错误。它显示得很好,当我尝试添加一些东西时,它会按它应该的方式运行。它仍然显示我刚刚创建的内容。但是在我刷新页面之后,数据就不存在了。 数据库没有变化,也没有添加数据 这是我的控制器: public ActionResult _Index([DataSourceRequest]DataSourceRequest request) { var u = db.Unit

我正在尝试使用剑道UI构建ASP.NET应用程序,当我想要创建、更新和销毁时,我会遇到一个问题。我构建它时没有错误。它显示得很好,当我尝试添加一些东西时,它会按它应该的方式运行。它仍然显示我刚刚创建的内容。但是在我刷新页面之后,数据就不存在了。 数据库没有变化,也没有添加数据

这是我的控制器:

public ActionResult _Index([DataSourceRequest]DataSourceRequest request)
    {
        var u = db.Unit.Select(n => new { n.UnitID,n.KodeUnit, n.NamaUnit, n.JumlahPegawai });
        DataSourceResult result = u.ToDataSourceResult(request);
        return Json(result, JsonRequestBehavior.AllowGet);
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult _Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<Unit> unit)
    {
        var results = new List<Unit>();

        if (unit != null && ModelState.IsValid)
        {
            foreach (var u in unit)
            {
                db.Unit.Add(u);
                db.SaveChanges();
            }
        }

        return Json(results.ToDataSourceResult(request, ModelState));
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult _Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<Unit> unit)
    {
        if (unit != null && ModelState.IsValid)
        {
            foreach (var u in unit)
            {
                db.Entry(u).State = EntityState.Modified;
                db.SaveChanges();
            }
        }

        return Json(new[] { unit }.ToDataSourceResult(request, ModelState));
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult _Destroy([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<Unit> unit)
    {
        if (unit.Any())
        {
            foreach (var u in unit)
            {
                db.Unit.Remove(u);
                db.SaveChanges();
            }
        }

        return Json(unit.ToDataSourceResult(request, ModelState));
    }
public ActionResult\u索引([DataSourceRequest]DataSourceRequest请求)
{
var u=db.Unit.Select(n=>new{n.UnitID,n.KodeUnit,n.NamaUnit,n.JumlahPegawai});
DataSourceResult结果=u.ToDataSourceResult(请求);
返回Json(结果,JsonRequestBehavior.AllowGet);
}
[接受动词(HttpVerbs.Post)]
公共操作结果\u创建([DataSourceRequest]DataSourceRequest请求,[Bind(Prefix=“models”)]IEnumerable单元)
{
var results=新列表();
if(单位!=null&&ModelState.IsValid)
{
foreach(单位为var u)
{
db.单位加上(u);
db.SaveChanges();
}
}
返回Json(results.ToDataSourceResult(request,ModelState));
}
[接受动词(HttpVerbs.Post)]
公共操作结果\u更新([DataSourceRequest]DataSourceRequest请求,[Bind(Prefix=“models”)]IEnumerable单元)
{
if(单位!=null&&ModelState.IsValid)
{
foreach(单位为var u)
{
db.Entry(u.State=EntityState.Modified;
db.SaveChanges();
}
}
返回Json(new[]{unit}.ToDataSourceResult(request,ModelState));
}
[接受动词(HttpVerbs.Post)]
public ActionResult_Destroy([DataSourceRequest]DataSourceRequest请求,[Bind(Prefix=“models”)]IEnumerable单元)
{
if(unit.Any())
{
foreach(单位为var u)
{
db.单位。移除(u);
db.SaveChanges();
}
}
返回Json(unit.ToDataSourceResult(request,ModelState));
}
这是我的模型:

namespace Aplikasi_PKPT.Models
{

public class Unit
    {
    [Key]
    public int UnitID { get; set; }

    [Display(Name="Kode Unit")]
    [Required(ErrorMessage="Kode Unit Tidak Boleh Kosong")]
    public string KodeUnit { get; set; }

    [Display(Name = "Nama Unit")]
    [Required(ErrorMessage = "Nama Unit Tidak Boleh Kosong")]
    [StringLength(60, ErrorMessage = "Nama Unit Tidak Boleh Melebihi 60 Karakter")]
    public string NamaUnit { get; set; }

    [Display(Name = "Jumlah Pegawai")]
    [Required(ErrorMessage = "Jumlah Pegawai Tidak Boleh Kosong")]
    public int JumlahPegawai { get; set; }

    public virtual ICollection<Pkpt> Pkpt { get; set; }
    public virtual ICollection<User> User { get; set; }
    public virtual ICollection<Korkel> Korkel { get; set; }
}
namespace Aplikasi_PKPT.Models
{
公营课组
{
[关键]
public int UnitID{get;set;}
[显示(Name=“Kode单位”)]
[必需(ErrorMessage=“Kode Unit Tidak Boleh Kosong”)]
公共字符串KodeUnit{get;set;}
[显示(Name=“Nama单位”)]
[必需(ErrorMessage=“Nama Unit Tidak Boleh Kosong”)]
[StringLength(60,ErrorMessage=“Nama Unit Tidak Boleh Melebihi 60 Krakter”)]
公共字符串NamaUnit{get;set;}
[显示(Name=“Jumlah Pegawai”)]
[必需(ErrorMessage=“Jumlah Pegawai Tidak Boleh Kosong”)]
公共int JumlahPegawai{get;set;}
公共虚拟ICollection Pkpt{get;set;}
公共虚拟ICollection用户{get;set;}
公共虚拟ICollection Korkel{get;set;}
}
}

这是我的索引视图:

<div class="container" style="margin-top:100px; padding-bottom:100px;">
@(Html.Kendo().Grid<Aplikasi_PKPT.Models.Unit>()
    .Name("Grid")
    .DataSource(datasource => datasource
        .Ajax()
        .Model(model => model.Id(id => id.UnitID))
        .Read(read => read.Action("_Index", "Unit"))
        .Create(update => update.Action("_Create","Unit"))
        .Update(update => update.Action("_Update", "Unit"))
        .Destroy(update => update.Action("_Destroy", "Unit"))
    )
    .Columns(columns =>
        {
        columns.Bound(u => u.KodeUnit);
        columns.Bound(u => u.NamaUnit);
        columns.Bound(u => u.JumlahPegawai);
        columns.Command(command => { command.Edit(); command.Destroy(); });
        }
    )
    .ToolBar(toolbar => {
        toolbar.Create();
    })
    .Editable(editable => editable.Mode(GridEditMode.PopUp))
    .Sortable()
    .Filterable()
    .Events(e => e.Edit("hideIdField"))

)
    <script>
        function hideIdField(e) {
            $("#UnitID").hide();
            $("label[for='UnitID']").hide();
        }
    </script>
</div>

@(Html.Kendo().Grid())
.名称(“网格”)
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>Model.Id(Id=>Id.UnitID))
.Read(Read=>Read.Action(“\u Index”,“Unit”))
.Create(update=>update.Action(“\u Create”,“Unit”))
.Update(Update=>Update.Action(“\u Update”,“Unit”))
.Destroy(update=>update.Action(“\u Destroy”,“Unit”))
)
.列(列=>
{
columns.Bound(u=>u.KodeUnit);
columns.Bound(u=>u.NamaUnit);
columns.Bound(u=>u.JumlahPegawai);
Command(Command=>{Command.Edit();Command.Destroy();});
}
)
.ToolBar(ToolBar=>{
toolbar.Create();
})
.Editable(可编辑=>Editable.Mode(GridEditMode.PopUp))
.Sortable()
.可过滤()
.Events(e=>e.Edit(“hideIdField”))
)
函数hideIdField(e){
$(“#UnitID”).hide();
$(“label[for='UnitID'])。hide();
}

非常感谢您的帮助。

为什么您要绑定IEnumerable

请尝试此代码以执行创建操作

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult _Create([DataSourceRequest] DataSourceRequest request,Unit unit)
{
    if (unit != null && ModelState.IsValid)
    {
        db.Unit.Add(u);
        db.SaveChanges();
    }

    return Json(results.ToDataSourceResult(request, ModelState));
}

如果可行,则以类似于“创建操作”的方式更改更新和删除操作。

您好,爱丁,非常感谢。我只在KendoUI网站上使用了文档示例。但我不知道这是因为我使用的是MVC5还是什么。。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult _Create([DataSourceRequest] DataSourceRequest request,Unit unit)
{
    if (unit != null && ModelState.IsValid)
    {
        db.Unit.Add(u);
        db.SaveChanges();
    }

    return Json(results.ToDataSourceResult(request, ModelState));
}