gpt4 book ai didi

kendo-ui - Kendo Grid Mvc - 无法在 View 页面上显示自定义错误消息

转载 作者:行者123 更新时间:2023-12-03 14:34:55 26 4
gpt4 key购买 nike

我在我的 MVC 项目中使用剑道网格。
问题是,错误消息无法显示在查看页面上。当我使用谷歌的开发人员工具跟踪 JSON 数据时,我可以看到正确的错误数据:

{"Data":null,"Total":0,"AggregateResults":null,"Errors":["There is record(s) with same name.Please review your new records."]}

预期消息已传递给 Controller ​​上的结果参数。

Controller :
catch (Exception exp)
{
var result = exp.ToDataSourceResult(request);
// var result1 = ModelState.ToDataSourceResult();
// ModelState.AddModelError("UpdateAmbulance", exp.Message);
return Json(result, JsonRequestBehavior.AllowGet);
}

这是 View 页面上的剑道网格代码:
      <!-- Grid  -->
@(Html.Kendo().Grid<AIS.UI.WebService.Proxy.DSrvAllService.AMBULANCEDEFINITIONS>() //Bind the grid to ViewBag.Products
.Name("grid")

// .BindTo(Model)
.Columns(columns =>
{

columns.Bound(product => product.DESCRIPTION).Title("<strong>Ambulance Description</strong>").Width("20%");
//.ClientTemplate("<strong>#:DESCRIPTION#</>strong");

columns.Bound(product => product.CODE).Title("<strong>Ambulance Description</strong>").Width("20%");


columns.Command(commands =>
{


commands.Destroy().HtmlAttributes(new { id = "buttondelete" ,style="display:none" });
}).Title("Operations").Width("10%");
})
.ToolBar(toolbar =>
{
toolbar.Create().HtmlAttributes(new { id="addbutton",style = "font-weight:bold;color:blue" }).Text("Add Records"); // The "create" command adds new data items

toolbar.Save(); // The "save" command saves the changed data items
})
// Use in-cell editing mode
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable(pager => pager
.PageSizes(true)
.Input(true)
.Refresh(true)
// .Messages(messages => messages.Empty("Veri bulunamadı"))
// .Messages(messages => messages.First("İlk Sayfa"))
// .Messages(messages => messages.Last("Son Sayfa"))
)
.Sortable() // Enable sorting
.DataSource(dataSource => dataSource

.Ajax()

// .Sort(sort => sort.Add("DESCRIPTION").Ascending())
.ServerOperation(true)
.Events(events => events.Error("onError"))
//.AutoSync(true)
.Model(model =>
{
model.Id(product => product.ID);
model.Field(product => product.ID).Editable(false).DefaultValue(Guid.Empty);
model.Field(p => p.DESCRIPTION).Editable(false);
model.Field(product => product.CODE).Editable(false);


})
.Events(events => events.Error("onError"))

.Create(create => create.Action("AmbulanceCreate", "Administrator"))
.Read(read => read.Action("AmbulanceRead", "Administrator"))
.Update(update => update.Action("AmbulanceUpdate", "Administrator"))
.Destroy(destroy => destroy.Action("AmbulanceDelete", "Administrator"))

)

)

JS
    function onError(e, status) {
if (e.errors) {
var message = "The following errors have occurred:\n";
// var message = "Please correct the records that you enter"
$.each(e.errors, function (key, value) {
if (value.errors) {
message += value.errors.join("\n");
}
});

alert(message);
}
}

最佳答案

解决方案:

  • 要将错误消息从 Controller 传递给 View ,需要使用
    模型状态 .
      if(condition)
    {
    throw new Exception("Error msg ");
    }
    catch (Exception exp)
    {
    ModelState.AddModelError("UpdateAmbulance", exp.Message);
    var result = ModelState.ToDataSourceResult();
    return Json(result, JsonRequestBehavior.AllowGet);
    }
  • 我在 js 代码中添加了一行,当
    出现错误信息:
    function onError(e, status) {

    if (e.errors) {
    var message = "\n";
    // var message = "Please correct the records that you enter"
    $.each(e.errors, function (key, value) {
    if (value.errors) {
    message += value.errors.join("\n");
    }
    });

    alert(message);
    $("#grid").data("kendoGrid").cancelChanges(); // Remove changes
    when error occurs.
    }

    }
  • 关于kendo-ui - Kendo Grid Mvc - 无法在 View 页面上显示自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092800/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com