MVC Quick Tips

1. How to redirect to another action from with in an Action
RedirectToAction("ToActionName", new { id = 99 });

id will be name of parameter for which value is being passed.

ActionLink passing parameter as QueryString

In MVC Razor ActionLinke, it is a common requirement to pass parameter as a query string. It creates URL like below:


and of course basically it is <a href="/CodeTest/EditClass/1">Edit</a>

ActionLink provide different overloads, using one of them such links can be generated:

@Html.ActionLink("Home", "Edit", new {id=1})

Instead of hard coded strign a model property can also be used:

@Html.ActionLink("Home", "Edit", new {id=Model.Id})


If you are using T4MVC templates is a little different from above examples, then you will code as per below example:

and using model:

For passing multiple parameters use AddRouteValues().

#mvc, #razor

Error on grid view paging “Failed to load viewstate.. “

I was getting “Failed to load viewstate ..” error when I was trying to load second page of grid.
I had AllowPaging=”true”, grid page size was set but even then in client’s test environment grid paging was not working at all and throwing the following error:

“Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.”.

Setting EnableViewState=false for that grid fixed this error.

#asp-net, #viewstate

Control duoble adding records on refreshing page

Events sequence in page, master page and user controls

Event sequence became complex when master and content page have user and server controls in them. I just tried to check this sequence and my findings are as below:

Content Page_PreInt
Master Page User Control Page_Init
Master Direct Control init event
Content Direct Control init event
Content Page User Control Direct Control init event
Content Page User Control Page_Init
Master Page_Init
Content Page_Init
Content Page_InitComplete
Content Page_PreLoad
Content Page_Load
Master Page_Load
Master Page User Control Page_Load
Master Direct Control load event
Content Direct Control load event
Content Page User Control Page_Load
Content Page User Control Direct Control load event
Content Page_LoadComplete
Content Page_PreRender
Master Page_PreRender
Master Page User Control Page_PreRender
Master Page Direct Control Pre Render event
Content Page Direct Control Pre Render event
Content Page User Control Page_PreRender
Content Page User Control Page Direct Control Pre Render event
Content Page_SaveState

For more details please check this and this.


adding server side event handler for html button

Event handler for html button can be added using OnServerClick method in html code to mention event handler name, it work just like in asp.button have OnClick method.

Enable or disable validation controls from Java Script

I like validation controls because they work on client side as well as on server side. Some time we need to disable validation controls from server side and then enable them on client side depending on some condition (for example if a particular checkbox or radio button is checked). The following code can be used in Java script to enable a validation control.

 ValidatorEnable(document.getElementById("<%=MyValidationControl.ClientID%>"), true); 

Same line of code will disable a validation control if we replace true with false. ValidatorEnable is a funtion provided by validation controls client side API. A useful boolean property of this API is isvalid and it is associated with each validation control. It is different from IsValid server side property. False is returned if given input is not validated by the validation control.

For more details on validation controls please see this nice article.