Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to define form field prefix in ASP.NET MVC

I am attempting to render a composite ProductCatalog view in ASP.NET MVC. This requires that I render multiple Product views per page. Each product view is a separate form. I need the form fields to have a prefix based on the id, so that I don't have duplicate IDs in the rendered document. Is there a way to define a prefix to be applied to all the form fields that are generated by the Html Extensions, or do I need to build this out manually?

like image 491
smartcaveman Avatar asked Apr 10 '11 10:04

smartcaveman


1 Answers

Yes, you can define a prefix for the controls inside your view based on the executing action, consider the following code that should be place in your GET action method:

ViewData.TemplateInfo.HtmlFieldPrefix = "DESIRED_PREFIX";

this will add the required prefix to your View controls, but in order to deal with them back when you post your page, you will need to redefine the prefix in the signature of your POST action as the following:

public ActionResult Create([Bind(Prefix = "DESIRED_PREFIX")] YOUR_ENTITY model)

Let me know if it worked, thanks.

like image 77
Mohammed Swillam Avatar answered Nov 15 '22 14:11

Mohammed Swillam