.Net MVC は比較的新しい。非常に単純な問題のように見えることに困惑しています。
互いに関連するオブジェクトがいくつかあります。
(例として)
public class Asset{
public int Id{get;set;}
public AssetCategory AssetCategory {get;set;}
public string Value {get;set;}
}
public class AssetCategory{
public string Name{get;set;}
public DateTime SomeDate{get;set;}
public int Id{get;set;}
}
View と pre に新しい「Asset」オブジェクトを作成したいので、AssetCategory セットで空のオブジェクトを作成します。次に、そのビューのモデルとして渡します。
@Html.HiddenFor(m=>m.AssetCategory)
そのオブジェクトから文字列に変換して元に戻す方法がないため、 Which は明らかに失敗します。
持っている@Html.HiddenFor(m=>m.AssetCategory.Id)
場合、ModelState は有効ですが、AssetCategory に関連付けられたすべての情報が含まれているわけではありません。
この状況では、切り離されたオブジェクトの正しいバージョンを DB から取得する必要がありますか? 現状では、新しいアセットを保存しようとすると. AssetCategory オブジェクトの null 非許容 DateTime が無効であるため、エラーが発生します。