0

我有一个对象,该对象以前从服务器到客户端往返并很好地返回(即编辑和查看表单工作正常)。但是,我已向该对象添加了一个复杂类型,并制作了一个自定义 ModelBinder 来处理它。复杂类型可以表示为单个字符串,但在对象中存储为 Decimal(认为“0 ft. 3in.”可以存储为 0.25)。

但是,我的问题是验证失败时。如果用户键入“asdf”,则验证失败。但是存储在十进制中的只是 0。因此,当视图被渲染并发送给用户时,他们只会看到“0”和错误消息,而不是看到“asdf”。我的默认 ModelBinder 没有这个问题(其他字段往返无效字符串就好了),所以我必须在我的自定义 ModelBinder 中遗漏一些东西......但它是什么?

我试过打电话

bindingContext.ModelState.SetModelValue(bindingContext.ModelName, New ValueProviderResult(null, attemptedValue, Globalization.CultureInfo.CurrentCulture))

但它似乎不影响任何事情。

4

1 回答 1

0

StackOverflow 上没有答案。在 ASP.NET 论坛上得到答案:http ://forums.asp.net/p/1571473/3941396.aspx#3941396

于 2010-06-23T19:45:23.237 回答