The project i am currently working on has an HTML/CSS layout which consists of 3 columns, the first contains a menu to access the various pages. When one of these options is selected the page appears in the second column and the same for selecting anything from the second column it will appear in the third. Just wondering how I can implement this so when a user selects the link on the second column it will produce output in the 3rd (the output to be displayed in the 3rd column will depend on the link selected and the parameters entered by the user in a form which is included in the second column). It sounds very confusing and not sure if I explained it well enough, I've never worked with a dynamic layout like this before, I'm used to just selecting the link and loading that page so any help would be great, thank you.

You mean a partial view?

Include them with @Html.partial() in your cshtml (if you're using the Razor view engine anyway, not sure about the use with other engines). You can pass along the model as well.

You'll have to Google a bit or wait for someone more knowledgeable if you want more information on the matter though. It's been a while.

I have achieved something semilar to this but with the help of server-side programming in CSS just made sure the correct position of the collums and the rest of the styling. Replay if server side programming is an option for your problem so I could be of more help.

Yea I think that server side programming will definitely be an option, especially if it helps make the project easier to implement.

OK. What I have did is to use two nested bindable controls positioned vertically one near to the other.In your application I think that two nested formviews will do the trick. The menu link will load the "page" inside the parent formview and a link in this parent formview will pass all the parameters to the second formview that will display the child content.
This is just a road map description. You can do all these either by having your "pages" content to a database or by having and serving html templates that are going to be red by code behind (a stringbuilder) and served accordinglly.
Hope I help you. If you need anything more just drop a line.

There are different ways to approach this... some good recommendations above. it would help to know if you are developing web forms, mvc, or web pages (razor).

You can refresh the various areas of your screen by posting back and taking care of everything server side, or you can leverage's ajax controls, or just use plain js/jQuery ajax and use [web methods] server side so you can communicate back and forth between browser and server without page reloads.