Asp.net mvc 带有剑道UI网格的ASP.NET MVC无法创建更新和销毁
我正在尝试使用剑道UI构建ASP.NET应用程序,当我想要创建、更新和销毁时,我会遇到一个问题。我构建它时没有错误。它显示得很好,当我尝试添加一些东西时,它会按它应该的方式运行。它仍然显示我刚刚创建的内容。但是在我刷新页面之后,数据就不存在了。 数据库没有变化,也没有添加数据 这是我的控制器: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
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));
}