c语言json中的枚举,MVC3不能正确识别JSON中Enum枚举值.pdf

MVC3 Action Enum POST

JSON

Demo

MVC3 Controller

1. //

2. public enum TrafficEnum

3. {

4. Bus = 0,

5. Boat = 1,

6. Bike = 2,

7. }

8. public class Person

9. {

10. public int ID { get; set; }

11. public TrafficEnum Traffic { get; set; }

12. }

13.

14. public class DemoController : Controller

15. {

16. public ActionResult Index(Person p)

17. {

18. return View();

19. }

20. }

Fiddler HTTP POST

Request Headers content-type:application/json

Request Body JSON

Execute HTTP

ID 9999Traffic

BusTraffic Bike

MVC4MVC4

MVC4MVC3

using System.ComponentModel; using System.Web.Mvc;

1. ///

2. /// MVC3 JSON Controller

3. ///

4. public class EnumConverterModelBinder : DefaultModelBinder

5. {

6. protected override object GetPropertyValue(ControllerContext

controllerContext, ModelBindingContext bindingContext, PropertyDescr

iptor propertyDescriptor, IModelBinder propertyBinder)

7. {

8. var propertyType = propertyDescriptor.PropertyType;

9. if (propertyType.IsEnum)

10. {

11. var providerValue = bindingContext.ValueProvider.Get

Value(bindingContext.ModelName);

12. if (null != providerValue)

13. {

14. var value = providerValue.RawValue;

15. if (null != value)

16. {

17. var valueType = value.GetType();

18. if (!valueType.IsEnum)

19. {

20.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值