首页 新闻 会员 周边

asp.net mvc 参数绑定

0
悬赏园豆:80 [已解决问题] 解决于 2015-09-18 20:15

controller{

actionr(自定义类 model){}

}

 

自定义类 {

public string string111{get;set;}

public xxxx pro1{get;set;}

}

 

大致代码如下, 现在pro1属性是一个复杂的json字符串,前台自动生成的。比较复杂。

mvc有没有扩展点能指定某个属性使用特定的绑定方法么

 

我知道 action(自定义类 model,[modelbinder(typeof(....)) xxxx pro1])这种方式是可以的。

czd890的主页 czd890 | 专家六级 | 园豆:14412
提问于:2015-05-20 16:00
< >
分享
最佳答案
0

再建一个扩展实体pro1Model,对应json串的pro1里的属性。将json转换成实体进行操作。

将Json转换为实体模型
pro1Model_model= new pro1Model();
_model= new JavaScriptSerializer().Deserialize<pro1Model>(pro1);

如果是list的话。

list<pro1Mode> l_model= new list<pro1Model>();
_model= new JavaScriptSerializer().Deserialize<list<pro1Model>>(pro1);

然后操作_model。

目前给出的只能是这个,虽然有点龌龊,但是我所了解的方式就是这样。你可以参考下。

 

收获园豆:80
大楚打码人 | 老鸟四级 |园豆:4313 | 2015-05-20 17:54
其他回答(2)
0

不可以,不过你可以定义个只读属性,只读属性直接反序列化,返回一个对象

吴瑞祥 | 园豆:29449 (高人七级) | 2015-05-20 16:23
0

直接给你的自定义类型增加个modelbinder 

或者 取出pro1的字段反序列化后赋值给model(有点像 楼上那哥们儿的方法)

或者增加一个自定义的 ValueProviderFactory .

| 园豆:780 (小虾三级) | 2015-05-22 18:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册