I have found myself doing very interesting things with jQuery lately. I am pretty amazed by the power it has.
I noticed I was doing stuff pretty half-a**ed using jQuery when it came to passing arguments to controller action methods.
Here is what I was doing:

$.get('/Facilities/Profile/EditStep2?profileId='
+ <%= Model.FacilityProfile.customerProfileId %> + '&item='
+ test


As you can see, I was manually constructing the URL. Then I noticed that you can actually just directly do this:

$.post("<%= Url.Action(ActionNames.GetShoppingCartCount,
ControllerNames.ShoppingCart, new { currentId = <% = Model.Id %> }) %>",

This works great when you have to pass Model related values back to the controller. But what if you had to pass in a javascript variable? In scenarios like this, you cannot rely on route construction. That’s when I realized something I had forgotten. jQuery actually let’s you pass arguments of a method call simply as:

function loadCityData() {
$.getJSON('<%= Url.Action("GetSelectedCities", "Profile") %>',
{ currentTime: '<%= DateTime.Now %>' }, function(data) {
for (var i = 0; i < data.length; i++) {
$("#citySelection").trigger("addItem", data[i]);
}
});
}

I had completely forgotten that jquery does have the provision to pass method parameters.

Kudos!