gpt4 book ai didi

asp.net-mvc - Telerik MVC Grid - 可空 DateTime 属性的问题

转载 作者:行者123 更新时间:2023-12-02 03:48:41 25 4
gpt4 key购买 nike

我对 Telerik MVC 扩展相当陌生。我已经在 View 中成功实现了我的第一个实例。我没有使用 Telerik MVC 网格实现第二个 View ,但是绑定(bind)到网格的类有 2 列,其类型为 Nullable。当我运行代码时, View 会输出如下错误:

传递到字典中的模型项为 null,但此字典需要类型为“System.DateTime”的非 null 模型项。

我最初认为这可能是模板的渲染问题,该模板仅适用于 DateTime 而不适用于 Nullable,但后来我完全取出了显示这些 DataTime 的任何列?属性。

我的代码如下:

查看 Telerik MVC Grid 代码

<%= Html.Telerik().Grid(Model.ScheduledCourseList)
.Name("ScheduledCoursesGrid")
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Image).ImageHtmlAttributes(new { style = "margin-left:0" }))
.DataKeys(keys => keys.Add(sc => sc.Id))
.DataBinding(dataBinding =>
dataBinding.Ajax()
.Select("_List", "Course")
.Insert("_InsertAjax", "Course")
.Update("_UpdateAjax", "Course")
.Delete("_DeleteAjax", "Course")
)
.Columns(columns =>
{
columns.Bound(c => c.Id).Width(20);
//columns.Bound(c => c.ScheduledDateTime).Width(120);
//columns.Bound(c => c.Location).Width(150);
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Image);
commands.Delete().ButtonType(GridButtonType.Image);
}).Width(180).Title("Commands");
})
.Editable(editing => editing.Mode(GridEditMode.PopUp))
.Sortable()
.Footer(true) %>

DTO

    public class ScheduledCourseDTO
{
public int Id { get; set; }
public int CourseId { get; set; }
public int CourseProviderId { get; set; }
public DateTime? ScheduledDateTime { get; set; }
public DateTime? EndDateTime { get; set; }
public string Location { get; set; }
public int SiteId { get; set; }

public decimal CostBase { get; set; }
public decimal CostPerAttendee { get; set; }
public decimal PricePerAttendee { get; set; }
public int MaxAttendees { get; set; }
public int CancellationDays { get; set; }

public bool Deleted { get; set; }
}

有人知道我该如何解决这个问题吗?

最佳答案

我设法在 Telerik 论坛上找到了此问题的解决方案。如果其他人遇到此问题,请查看以下线程:

http://www.telerik.com/community/forums/aspnet-mvc/grid/problem-with-nullable-datetime-property.aspx#1423387简而言之,解决方案是您的 ASP.NET MVC 项目的 Views/Shared 文件夹中应该有一个 EditorTemplates 文件夹。此 EditorTemplates 文件夹是由 Telerik 添加的。在此文件夹中,有一个名为 DateTime.ascx 的模板 View ,它继承自 System.Web.Mvc.ViewUserControl。问题在于模板需要正常的日期时间。要修复此问题,请将其更改为可空的 DateTime,如下所示:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>

这解决了问题。

关于asp.net-mvc - Telerik MVC Grid - 可空 DateTime 属性的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207654/

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