views:

11

answers:

1

The exception:

"Input string was not in a correct format."

Appears when I try to access a field on my page like this:

.TransmissionId = IIf(FormValues("TransmissionId").Length > 0, Integer.Parse(FormValues("TransmissionId")), 0)

However it works for another field which is the same exact type of field, accessed like this:

.StateId = IIf(FormValues("StateId").Length > 0, Integer.Parse(FormValues("StateId")), 0)

Where could the mismatch and exception be coming from? What could be the fault? The field doesn't have a value when I'm pulling it. Do I have to test for a value different for this number field than I would have to for a text field?

+2  A: 

Well obviously you are trying to parse a string value to an integer which cannot be parsed to an integer. Look at what's actually sent to the server to understand why the value cannot be parsed as integer. FireBug is a useful tool for this. Especially look for the TransmissionId value in the request (is it present, what's the value). You could also use the TryParse method to avoid exceptions and handle the error gracefully.

A better solution would be to use view models as action arguments and leave the parsing to the default model binder. This way you could completely get rid of the code you've written as it would be handled by the binder.

Darin Dimitrov
I went with IsNumeric() instead..however, this was a very good thought out response so I gave you the check ;)
Scott