0
我有視圖模型與內部ViewModel地址propery。反序列化Html.Serialize介紹ViewModel
public class CommonViewModel{
public AddressViewModel PreviouslyAddress { get; set; }
}
和地址:
[Serializable]
public class AddressViewModel
{
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string Prefix { get; set; }
public string ZipCode { get; set; }
}
我想序列化,並在POST得到deseriliazed。
我用:
@Html.Serialize("PreviouslyAddress", Model.PreviouslyAddress)
但在所有的例子,他們使用屬性DeserializeAttribute
只能在方法的參數來實現。
EDITED
如何我可以不用創建自定義的岸堤,並把我的模型參數的一部分。
[HttpPost]
public ActionResult Register([DeserializeAttribute] AddressViewModel user, FormCollection userForm)
{
TryUpdateModel(user, userForm.ToValueProvider());
例如,如果可能的話我想是這樣的:
[HttpPost]
public ActionResult Register(CommonViewModel model)
{
TryUpdateModel(user, userForm.ToValueProvider());
public class CommonViewModel{
[DeserializeAttribute]
public AddressViewModel PreviouslyAddress { get; set; }
}
剛今天,我看到一些ASP.MVC的問題。你已經回答了。我想說,感謝您使用ASP.MVC的工作。 我可以手動(我做:)),但我想使用ASP.NET defualt功能。但是我發現它不存在:( – 2012-01-17 13:58:50
@IvanKorytin,你想使用哪些默認功能?你也可以使用'[Deserialize]'屬性來修飾你的動作參數,然後它會被自動反序列化。忘了這不是ASP.NET MVC內置的功能,它是MVCContrib項目的一部分,所以我想知道你正在尋找什麼樣的默認功能 – 2012-01-17 14:05:52
對不起,我的意思是,例如,我應用[Deserialize ]屬性爲propery,我將去deserializy。有些人認爲我稱之爲「默認」。 – 2012-01-17 17:40:08