Hey all,

Just hit an error in my mvc controller after I added a new method to it. It
was complaining that I wasn't providing a value for a second property. I
was a bit confused for a second until I realised that it was calling my
newly added method when my intent was that it should still be calling the
original method.

That probably doesn't make sense. Original method being called as httppost
was working fine. New method with different signature (two parameters) is
now being called instead. I realise now what's going on, that methods on
your controllers are called based on their signature (name doesn't matter).
It's a bit to get my head around when compared with WCF or web services
where you can call a named method in a class and you can have as many as
you like as the name is part of the signature. It would seem that MVC
controllers (and WebApi) you can only have one of each type of call.
Or do I need to add extra routes to be able to have additional methods on
my controller? (ie a method with three parameters)

So my question is, what to do to group like functionality together when you
have to split everything up into its own controller? I guess the controller
could be treated as a facade into a class (with each class having whatever
methods you like on it). Is that the normal way to go? With lots of
different calls I imagine you'd end up with dozens of controllers.
Also what do you do when you have more than one call from a view? It seems
a view matches up with a controller so if you have one view with say 5
different calls on it (ajax calls for example), you'd need a different
controller for each one as you can't put them into a single controller.

I'm sure there's a good explanation of this somewhere in an MVC book
somewhere but i'm not even sure what you call this structure.

Sorry if my question is a bit vague. :)
cheers,
Stephen

Reply via email to