c# - 为什么 kendo Grid 不生成任何 html 输出并且没有服务器端/客户端错误?

标签 c# asp.net-mvc-4 kendo-ui kendo-grid

我的 View 之一中有这个剑道网格:

@model IEnumerable<IJRayka.Core.Utility.ViewModels.OrderDto>
@using IJRayka.Core.Web.Code
@{
    ViewBag.Title = "Order List";
}

<h2>Order List</h2>
    @{
Html.Kendo().Grid(Model).Name("grid").Columns(columns =>
    {
        columns.Bound(ord => ord.CustomerName);
        columns.Bound(ord => ord.MarketerName);
        columns.Bound(ord => ord.OrderDate);
        columns.Template(ord => ord.CurrentStatus.GetDisplayName());
        columns.Bound(ord => ord.PaymentMethod);
        columns.Bound(ord => ord.Description);
        columns.Command(cmd => cmd.Edit().Text("ویرایش"));
        columns.Command(cmd => cmd.Select().Text("مشاهده"));
        columns.Command(cmd => cmd.Destroy().Text("حذف"));

    }).DataSource(ds => ds.Server()
        .Model(m => m.Id(ord => ord.ID))
            .Create(create => create.Action("Create", "OrderManagement"))
            .Read(read => read.Action("Details", "OrderManagement"))
            .Update(update => update.Action("Edit", "OrderManagement"))
            .Destroy(destroy => destroy.Action("Delete", "OrderManagement"))
        ).Pageable().Sortable()
    .ToolBar(toolbar => toolbar.Create().Text("ایجاد سفارش"))
    .Selectable(selectable => selectable.Mode(GridSelectionMode.Single)));
}

当我调试时,我看到模型集合中有4个项目,但我不知道为什么没有任何错误,网格根本不会显示。客户端不会生成任何 HTML 标记,Firebug 控制台中也不会显示任何错误。

它以前工作得很好,但突然间,在对我的模型进行一些更改后,我不知道它发生了什么。

编辑: 我刚刚意识到,如果我将所有行写在一行中,它就可以工作! 但我不明白为什么?

最佳答案

当您使用构造 @{ .. } 时,您将处于 razor 中的代码块中。在代码块内部,默认情况下不会将任何内容写入响应。

您需要使用@将某些内容输出到输出,或者您需要在网格上使用一些特殊方法,例如Render()

因此以下调用均有效:

any Kendo Widget: 上使用 Render

@{
    Html.Kendo().Grid(Model).Name("grid").Columns(columns =>
    {
      //...
    })
    .Selectable(selectable => selectable.Mode(GridSelectionMode.Single)))
    .Render(); //Render method provided by Kendo UI.
}

使用@:

@{
    @(Html.Kendo().Grid(Model).Name("grid").Columns(columns =>
    {
      //...
    })
    .Selectable(selectable => selectable.Mode(GridSelectionMode.Single))))
}

或者,如果您在代码块中有这一语句,则根本不使用代码块,只需编写:

@(Html.Kendo().Grid(Model).Name("grid").Columns(columns =>
{
    //...
})
.Selectable(selectable => selectable.Mode(GridSelectionMode.Single))))

注意:如果 @ 之后有多行语句,则需要用一组额外的括号 (()) 包裹整个语句

关于c# - 为什么 kendo Grid 不生成任何 html 输出并且没有服务器端/客户端错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638272/

相关文章:

c# - 当鼠标按下时 MouseHover 不触发

c# - 将业务逻辑类放在 Entity Framework 中的何处 - ASP.NET MVC 4 解决方案?

asp.net-mvc - JSON 到动态 - 'Newtonsoft.Json.Linq.JObject' 不包含定义

c# - <logger> 的 log4net 过滤不起作用

c# - SQLite 按位查询到 EF Core Linq 版本?

javascript - 从页脚清除 Kendo Datepicker 输入字段

asp.net-mvc - Grid into Grid Popup Editor - 在子网格中传递 ID 参数

javascript - 如何在 Kendo UI 中创建 Jalali Date Picker?

c# - 如何禁用 TreeView 自动第一个节点选择

c# - 在 ASP.Net MVC 中合并多个数据库上下文