如何控制RouteValueDictionary中类型的序列化?

时间:2012-07-20 00:56:08

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing model-binding

我有使用RouteValueDictionary和UrlHelper在ASP.NET MVC3中构建Urls的代码。我遇到的问题是MVC对字典中的类型调用ToString()。对于我正在使用的特定类型,这不是我想要在Uri中的值。我无法更改ToString实现。

我理解如何创建一个ModelBinder来处理来自Uri的反序列化,而不是序列化部分。如何以及如何注册以控制类型如何转换为Uri参数?

谢谢, 埃里克

1 个答案:

答案 0 :(得分:0)

  

对于我正在使用的特定类型,这不是我想要在Uri中的值

然后不要使用此类型。将您想要的值直接作为字符串中的字符串传递:

rvd["key"] = "the value you want";

而不是:

rvd["key"] = new SomeType { Foo = "foo", Bar = "bar" };

您的类型及其字符串表示形式之间的转换应在其他地方处理。