Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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
C# 如何在Kendo UI asp net MVC中设置空类型的默认值_C#_Kendo Ui_Kendo Asp.net Mvc - Fatal编程技术网

C# 如何在Kendo UI asp net MVC中设置空类型的默认值

C# 如何在Kendo UI asp net MVC中设置空类型的默认值,c#,kendo-ui,kendo-asp.net-mvc,C#,Kendo Ui,Kendo Asp.net Mvc,我使用Kendo UI ASP NET MVC网格,我想在模型部分为可空类型设置默认值,例如字符串,如下所示 @(Html.Kendo().Grid(Model.Comments) .Name("...") .DefaultSettings() .Columns(columns => { columns.Bound(c => c.JobI

我使用Kendo UI ASP NET MVC网格,我想在模型部分为可空类型设置默认值,例如字符串,如下所示

@(Html.Kendo().Grid(Model.Comments)
              .Name("...")
              .DefaultSettings()
              .Columns(columns =>
              {
                  columns.Bound(c => c.JobId).Width("12%");
                  columns.Bound(c => c.ChangeDate).Width("15%");
                  columns.Bound(c => c.ChangeUserName).Width("12%");
                  columns.Bound(c => c.ProjectRole).Width("12%");
                  columns.Bound(c => c.Text).Width("18%");
              })
              .AddActionsByPermissions(new[]
              {
                  ...
              })
              .Editable(editable => editable.Mode(GridEditMode.InLine))
              .Sortable()
              .Resizable(resize => resize.Columns(true))
              .Selectable()
              .Scrollable(src => src.Height("auto"))
              .Pageable(p => p.PageSizes(new[] { 10 }).PageSizes(false))
              .Events(e =>
              {
                  e.Change("projectCommentsModule.onRowSelect");
                  e.DataBinding("projectCommentsModule.onGridDataBinding");
              })
              .DataSource(dataSource => dataSource
                  .Ajax()
                  .ServerOperation(false)
                  .Read("Commentss", "ProjectComments")
                  .Model(m =>
                  {
                      m.Id(d => d.Id);
                      m.Field(d => d.ChangeDate).Editable(false).DefaultValue(DateTime.Now);
                      m.Field(d => d.ChangeUserName).DefaultValue(Model.CurrentUserProjectRole).Editable(false);
                      m.Field(d => d.ProjectRole).Editable(false).DefaultValue(Model.CurrentUserName);
                      m.Field(d => d.ProjectNumber).Editable(false).DefaultValue(Model.ProjectNumber);
                      m.Field(d => d.JobId).DefaultValue(0);
                  })
                  .Sort(s => s.Add(c => c.ChangeDate).Descending())
                  .Create(create => create.Action("AddComment", "ProjectComments"))
                  .Update(create => create.Action("UpdateComment", "ProjectComments"))
              )
        )

但对于nullable类型,它并没有设置,所以当我保存记录时,我在服务器上获取null值,但需要获取例如SomeName,如何修复它

现在,我认为这是剑道UI中的一个小错误。截至2019年7月,我在Telerik的一篇博文中发现:

我担心,在上一个官方版本中,我们引入了一个回归错误,它会影响对某些字段应用默认值(在本例中为字符串类型的字段)

他们将此作为解决方案,我认为您可以在这里使用它。添加BeforeEdit类型的事件,如下所示:

.Events(e=>e.BeforeEdit("onBeforeEdit"))
<script>
    function onBeforeEdit(e) {
      if(e.model.isNew()){
        e.model.YourField = "SomeName";
      }
    }
</script>
然后,您显然会根据需要更改字段名和值