この質問はすでに何度も聞かれていることを認識しています。しかし、どの解決策もうまくいきませんでした。
問題:
私はオブジェクトを持っています:
public class SomeObject
{
[Remote("MyAction", "MyController")]
public DateTime MyDate { get; set; }
}
そしてモデル:
public class SomeModel
{
public SomeObject MyObject { get; set; }
}
そして私の行動:
public JsonResult MyAction(DateTime MyDate)
{
//do some validation here
}
検証が開始されると、複雑なオブジェクトであるため、次のような URL が送信されます。
http://localhost/MyController/MyAction?MyObject.MyDate=xxxxxxxx
明らかに、これは、パラメーター名がクエリ文字列名と一致しないため、アクションが日付を取得しないことを意味します。
私は広範囲に検索し、多くの提案を見てきました - 私はすべて試しましたが、どれもうまくいきませんでした. 私が試したのは次のとおりです。
バインド属性の使用
public JsonResult MyAction([Bind(Prefix = "MyObject")]DateTime MyDate)
と
public JsonResult MyAction([Bind(Prefix = "MyObject.MyDate")]DateTime MyDate)
日付はnullとして返されます
モデルまたはオブジェクトをパラメータ タイプとして使用する
public JsonResult MyAction(SomeObject myObject)
と
public JsonResult MyAction(SomeModel myModel)
MyDate
常に MinValue として終了しますが、パラメーター (SomeModel または SomeObject) は null ではありません
何が間違っているのかよくわかりません。誰かが私を正しい方向に向けることができますか? 走る前に唱えなければならない呪文はありますか、それとも外が晴れている必要がありますか? これは、一般的なシナリオでは予想よりもはるかに多くの作業のようです。