Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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#Blazor和数据绑定到DateTime?_C#_Blazor_Blazor Server Side_Blazor Client Side_Asp.net Blazor - Fatal编程技术网

C#Blazor和数据绑定到DateTime?

C#Blazor和数据绑定到DateTime?,c#,blazor,blazor-server-side,blazor-client-side,asp.net-blazor,C#,Blazor,Blazor Server Side,Blazor Client Side,Asp.net Blazor,我必须为现有的Asp.net Core 3.1 Blazor项目添加日期和时间输入字段的数据验证;这是我第一次与Blazor合作 我在日期输入字段上设置了数据绑定(它有一个日期选择器,数据绑定到一个日期时间变量),没有问题。但是,时间输入的情况不同(它有一个时间选择器,并绑定到另一个DateTime变量) 简而言之,当用户使用时间选择器设置时间并将其关闭时,输入字段中的时间将返回到最初设置的时间。例如,如果时间输入当前设置为12:00 AM,然后用户从时间选择器中选择一个新时间(比方说2:00

我必须为现有的Asp.net Core 3.1 Blazor项目添加日期和时间输入字段的数据验证;这是我第一次与Blazor合作

我在日期输入字段上设置了数据绑定(它有一个日期选择器,数据绑定到一个日期时间变量),没有问题。但是,时间输入的情况不同(它有一个时间选择器,并绑定到另一个DateTime变量)

简而言之,当用户使用时间选择器设置时间并将其关闭时,输入字段中的时间将返回到最初设置的时间。例如,如果时间输入当前设置为12:00 AM,然后用户从时间选择器中选择一个新时间(比方说2:00 PM),则用户单击ok并关闭时间选择器,输入中的时间返回到12:00 AM。我在同一页上有另一个时间输入,但数据绑定到字符串而不是DateTime,如果在时间选择器中再次设置时间,则会保留时间

我写了一个很短的程序来演示这个问题。我的示例页面有三个输入字段:日期、时间和其他时间,但其数据绑定到字符串

@page/“
你好,世界!
欢迎使用您的新应用程序。

日期:

时间:

时间2:

@代码 { 公共类时间样本 { 公共日期时间日期{get;set;} 公共日期时间{get;set;} 公共字符串文本{get;set;} }; 私有EditContext_EditContext; 私有时间样本_TimeSample=new TimeSample(); 受保护的覆盖无效OnInitialized() { _editContext=新的editContext(_timeSample); } 私人无效手册提交() { } 受保护的无效HandleInvalidSubmit() { } }
您使用的浏览器是什么?我用Chrome运行了你的代码,但我无法重现这个问题。。。我认为这与Blazor无关,而是与您使用的浏览器有关。请使用其他浏览器尝试您的代码


希望这能有所帮助……

我使用的是新版本的Microsoft Edge(类似Chrome)。我刚刚在Chrome上试用过,虽然时间和日期选择器与Edge不同,但它工作正常!谢谢你的努力。我决不会怀疑浏览器。
@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.

<div class="wrapper">
  <section class="createevent">
    <EditForm EditContext="@_editContext" OnValidSubmit="@HandleValidSubmit" OnInvalidSubmit="@HandleInvalidSubmit">
      <DataAnnotationsValidator />
      <div class="form-group">
        <p>
          <label>
            Date:
          </label>
          <input id="txtDate" type="date" required @bind-value="_timeSample.date" />
          <ValidationMessage For="@(() => _timeSample.date)" />
        </p>
      </div>
      <div class="form-group">
        <p>
          <label>
            Time:
          </label>
          <input id="txtTime" type="time" required @bind="_timeSample.time" />
          <ValidationMessage For="@(() => _timeSample.time)" />
        </p>
      </div>
      <div class="form-group">
        <p>
          <label>
            Time2:
          </label>
          <InputText id="txtTime2" type="time" required @bind-Value="_timeSample.text" />
          <ValidationMessage For="@(() => _timeSample.text)" />
        </p>
      </div>
    </EditForm>
  </section>
</div>

@code
{
  public class TimeSample
  {
    public DateTime date { get; set; }
    public DateTime time { get; set; }
    public string text { get; set; }
  };

  private EditContext _editContext;
  private TimeSample _timeSample = new TimeSample();

  protected override void OnInitialized()
  {
    _editContext = new EditContext(_timeSample);
  }

  private void HandleValidSubmit()
  {
  }

  protected void HandleInvalidSubmit()
  {
  }

}