I had same error, I think the problem is that the error text is confusing, because its giving a false key name.
In your case It should say "There is no ViewData item of type 'IEnumerable' that has the key "Submarkets"".
My error was a misspelling in the view code (your "Submarkets"), but the error text made me go crazy.
I post this answer because I want to say people looking for this error, like I was, that the problem is that its not finding the IENumerable, but in the var that its supposed to look for it ("Submarkets" in this case), not in the one showed in error ("submarket_0").
Accepted answer is very interesting, but as you said the convention is applied if you dont specify the 2nd parameter, in this case it was specified, but the var was not found (in your case because the viewdata had not it, in my case because I misspelled the var name)
Hope this helps!