我意識到這個問題已經被詢問了很多次。然而,沒有任何解決方案爲我工作。MVC 3對象不能正常工作的遠程驗證
問題:
我有一個對象:
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
}
當驗證踢,因爲它是一個comp法對象發送一個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)
日剛回來爲空
使用模型或對象作爲參數類型
public JsonResult MyAction(SomeObject myObject)
和
public JsonResult MyAction(SomeModel myModel)
MyDate
最終總是爲MINVALUE,但參數(SomeModel或SomeObject)不是空
我不太清楚我在做什麼錯。任何人都可以將我指向正確的方向嗎?在跑步之前有沒有什麼咒語,或者是外面晴朗嗎?這似乎是比預期更普遍的情況下更多的工作。
我要指出,我看到了解決方案,你可以使用'請直接訪問它的查詢字符串[「...」]'但我想避免使用魔術字符串。 – 2011-05-26 05:32:24
我還應該注意日期是可解析的 - 如果我通過'Request'方法獲取日期並解析它,它可以正常工作 – 2011-05-26 05:35:04