If you have a Ajax.Actionlink and you want to specify a OnBegin with a parameter you need to use the following syntax:
<%=Ajax.ActionLink("text", "Action", "Controller", new { param = someVar }, new AjaxOptions() { OnBegin = string.Format("new Function(‘DoSomeThing({0})’)", index), HttpMethod = "POST" })%>
Where DoSomeThing is just a function that takes a string as parameter.
Update: added quotes around the real (inner) function, otherwise it’s executed instead of passed on at the creation of the object.
Sweet! Just what I was looking for. Thanks.
Pingback: ASP.NET MVC Archived Buzz, Page 1
Why does the string.Format not have a {0} in it? are the tick marks ` intentional or are they mean to be single quotes?
Those backticks are single quotes, I don’t know why my blog makes them backticks. And indeed, I forgot the {0}, thanks for that. It’s because I refactored my function to something more generic. I will fix it soon
It’s cool! It was hard to find out my mistake. Your post help me. Use it not only for OnBegin, use it for OnSuccess, OnComplete and others too.