views:

50

answers:

4

Hi

I have a local variable called mode in JQuery function. Based on the radiobutton selection, this variable value is set in JQuery function.

Now i want to access this value in COntroller? How can we do this.

$(':radio').click(function() { var mode = this.value; });

Now How can I access this mode variable in my controller method.

[HttpPost] public ViewResult ExportToExcel(string mode) { }

Appreciate your responses.

Thanks

+1  A: 

You should perform either synchronous request (form submit with mode variable set) or AJAX POST request, depends on your application design

Yaroslav
A: 

because mode is declared inside the anonymous function, it cannot be access outside of it. you can create a callback that uses the mode variable, or make it more global so you can access it outside the function.

John Boker
A: 

You can do something like (or any other ajax method you want to call there); $.post('yourController/ExportToExcel/'+mode,.../the rest of the params/);

in your anonymous function to make it like;

$(':radio').click(function() { var mode = this.value; $.post('yourController/ExportToExcel/'+mode,.../the rest of the params/); });

Naveed
I tried $.post('Home/ExportToExcel', {"mode": mode });Still the value of mode in controller is null.
Rita
Did you try my given url format with your controller function: [HttpPost] public ViewResult ExportToExcel(string mode) {} ? that way, you will have the value of mode in 'mode' parameter
Naveed
+1  A: 

Have you thought about creating a hidden field on the page and then updating its value from jQuery? You can then just read in this value as an additional POST field when the page is submitted to the server.

philwilks