输入日期绑定

时间:2020-06-23 19:37:05

标签: .net .net-core blazor blazor-server-side

我正在尝试绑定到:

public DateTime? DOB { get; set; }

这很完美:

<input type="date" format-value="MM/dd/yyyy" @bind="MyObject.DOB">

我需要工作的是

<input type="date" format-value="MM/dd/yyyy" value="@MyObject.DOB"  @onchange="@( (args) => { MyObject.DOB = args.Value.ToString().TryDateConvert(); MyMethod();})">

<input type="date" format-value="MM/dd/yyyy" value="@MyObject.DOB"  @onchange="@( (args) => DOBChanged(args))">

public void DOBChanged(ChangeEventArgs e)
{
    var myVal =e.Value.ToString();
    MyObject.DOB = myVal.TryDateConvert();
    MyMethod();
}

我已经尝试了一些变体,但是无论它将绑定到MyObject.DOB上什么,但是它将不会显示在文本框中。

它将重置为MM / DD / YYYY。我在其他控件上使用了这种方式,但是由于某种原因,日期将其抛出一个循环。

谢谢。

1 个答案:

答案 0 :(得分:1)

<input type="date">不能很好地与格式值属性配合使用,您可以详细了解https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date

您可以尝试--

<input type="date" value="@MyObject.DOB.ToString("yyyy-MM-dd")" @onchange="@( (args) => DOBChanged(args))">

public void DOBChanged(ChangeEventArgs e)
    {
        var myVal = e.Value.ToString();
        MyObject.DOB = DateTime.Parse(myVal);
        MyMethod();
    }