I have a partial that is used in several views.
The partial contains forms. The action when a form is submited is allways the same, but the controller thats contains the action depends on the view.
Lets say I have Controllers that each have an action ActOnChoosenPerson:
FireStaffController
HireStaffController
I have a partial
PersonList.ascx
The forms are rendered as
Html.BeginForm("FireStaffController" ,
"ActOnChoosenPerson") orHtml.BeginForm("HireStaffController" ,
"ActOnChoosenPerson")
What is a good way to get rid of the controller parameter? Right now I pass the name of the current controller into the model and use
Html.BeginForm(Model.CurrentController ,
"ActOnChoosenPerson")
but that is a bit awkward.
This code will always give your current controller
Obviously you can use it without the <%= like this
It looks more clunky but your model should not need to know what controller is calling it.