2017-08-17 12 views
0

ブートストラップのdatepickerを使用して私のモデルのプロパティをバインドする際に問題があります。ブートストラップ日付ピッカー。問題のバインド:値が無効です

[DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime FechaDesignado { get; set; } 

この:

enter image description here

値DATEがDateFieldの

これは、プロパティは私のモデルで定義されている方法であるため、有効ではありません:私は次のエラーを取得していますビューがどのように構築されるかです:

<div class="form-group"> 
    <div> 
     <input type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/> 
     <span asp-validation-for="@item.FechaDesignado" class="text-danger"></span> 
    </div> 
</div> 
これは、それが私のDBにどのように見えるかです

<div class="form-group" form="form1"> 
    <div> 
     <input type="datetime" class="datepicker form-control" data-val="true" data-val-required="The FechaDesignado field is required." name="item.FechaDesignado" value="09/01/1901" /> 
     <span class="text-danger field-validation-valid" data-valmsg-for="item.FechaDesignado" data-valmsg-replace="true"></span> 
    </div> 
</div> 

:に変換

enter image description here

これは、日付ピッカーのコードです:コントローラ内部

<script type="text/javascript"> 
    $(function() { 
     $('.datepicker').datepicker({ 
      "autoclose": true 
     }); 
    }); 

</script> 

ポスト処置:

[HttpPost, ActionName("Management")] 
    //[ValidateAntiForgeryToken] 
    public async Task<IActionResult> Management(int? id) 
    { 
     var storetoupdate = _context.Stores.SingleOrDefault(m => m.StoreID == id.Value); 
     if (await TryUpdateModelAsync(
      storetoupdate, "item", 
      s => s.StoreName, s => s.IncomePeriodicity, s=>s.Usuario, s => s.FechaDesignado)) 
     { 
      await _context.SaveChangesAsync(); 
      return RedirectToAction("Management"); 
     } 
     return RedirectToAction("Management"); 
    } 

が質問:私が日付入力フィールドを変換する必要がありますようには思えますDateTime.ParseExactを使用してdatetimeオブジェクトが、私はどのようにコントローラを編集するのかわからない彼の申し訳ありませんが、私はこれをすべて学んでいます。

ありがとうございました。

+0

理想的には、手動でビューモデルに日付値をバインドする必要はありません。投稿日の値はStore View ModelのFechaDesignadoプロパティに正しくバインドされていませんか? – Win

+0

@Win yeap、StoreモデルのFechaDesignadoプロパティは、送信された値が有効ではないと言って、モデルにバインドされていません –

答えて

1

変換dateフォーマットの場合はDateTime.ParseExactdatetimeに使用できます。詳細については、thisを参照してください。

編集

あなたはポスト正しいフォーマットの日付のために、このようdata-format属性を使用することができます。

<input data-format="0:MM/dd/yyyy" type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/> 
+0

ありがとう、私はこれについて調査していますが、 –

+0

@LuisAlbertoDelgadodelaFlo私は私の答えを編集しました。もう一度ご覧ください。これであなたの問題が解決されたことを祈っています。 –

+0

ありがとうございます!! –

関連する問題