No, both are [HttpPost] I've also realised I had two different Html.BeginForms. one with no parameters and the other with the name of the method I wanted it to use. Is it possible to have two HttpPost with different names, and call them via specifying the name in the BeginForm() ?
So that actual issue with it calling the wrong method seemed to be the BeginForm with no parameters was using the parameters of the other form (on a different tab). Will experiment and see if I need to move it or can specify by name as well as Action type. On Mon, Jul 14, 2014 at 2:23 PM, Jano Petras <[email protected]> wrote: > With MVC controllers and two methods sharing the same name - they have to > differ by HTTP verb (get / post). If the action method is not decorated by > [HttpGet] or [HttpPost] it is considered both. Are these two being > decorated by different verb ? > > > > > On 14 July 2014 16:15, Stephen Price <[email protected]> wrote: > >> 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 >> > >
