Edit and Create view using EditCreate.ascx partial in ASP.NET MVC

Posted by mare on Stack Overflow See other posts from Stack Overflow or by mare
Published on 2010-03-22T00:24:46Z Indexed on 2010/03/22 0:31 UTC
Read the original article Hit count: 332

Filed under:
|

If you look at the NerdDinner example of creating and editing dinners then you see they use a partial (ViewUserControl or ASCX) DinnerForm to put the functionality of creating and editing dinners into one file because it is essential the same and they use it using RenderPartial("DinnerForm").

This approach seems fine for me but I've run into a problem where you have to add additonal route values or html properties to the Form tag.

This picks up the current action and controller automatically:

<% using (Html.BeginForm()) { %>

However, if I use another BeginForm() overload which allows to pass in enctype or any other attribute I have to do it like this:

<% using ("Create", "Section", new { modal = true }, FormMethod.Post, new { enctype = "multipart/form-data" }))

and as you can see we lose the ability to automatically detect in which View we are calling RenderPartial("OurCreateEditFormPartial"). We can't have hardcoded values in there because in Edit View this postback will fail or won't postback to the right controller action.

What should I do in this case?

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about partial-views