javascript asp.net-mvc-4 url.action

Pase una variable de JavaScript como parámetro a @ url.Action()



asp.net-mvc-4 (1)

¿es posible pasar una variable de javascript como parámetro a @ url.Action (), porque hasta donde yo sé puede haber un problema del lado del servidor y del cliente, mi requisito es que tenga que descargar el archivo de acuerdo con el filtro y llamar ajax no funciona con la descarga del archivo. así que he codificado el @ url.Action () que funciona pero no puedo implementar esto, ¿alguien puede sugerirme cómo pasar el parámetro a @ url.Action () o cualquier otro enfoque.

aqui esta mi codigo

<a href="@Url.Action("Export", new { SelectedAccountType="1", FromDate = "2014-02-02", ToDate = "2014-02-02", SelectedAccount = "", SelectedUser = "", SelectedTeam = "" })" class="btn-primary" id="exportbutton2"> Export as CSV</a>

y este es el parámetro que quiero asignar a @ Url.Action

<script type="text/javascript"> var accountType = $(''#SelectedAccountType'').val(); var fromDate = $(''#FromDate'').val(); var toDate = $(''#ToDate'').val(); var accountId = $(''#SelectedAccount'').val(); var userId = $(''#SelectedUser'').val(); var teamId = $(''#SelectedTeam'').val(); </script>


Necesita construir su url usando javascript / jquery. En la vista, cambie el enlace a

<a id="export" href=#">Export as CSV</a>

Luego en el guión

var baseurl = ''@Url.Action("Export")''; $(''#export'').click(function() { var url = baseurl + ''?SelectedAccountType='' + $(''#SelectedAccountType'').val() + ''&FromDate='' + $(''#FromDate'').val() + ''&ToDate='' + $(''#ToDate'').val() + ...etc location.href=url; });

Sin embargo, si su formulario está marcado con FormMethod.Get , puede usar un botón de envío normal y no se requiere jquery

@using (Html.BeginForm("Export", "yourControllerName", FormMethod.Get)) { @Html.TextBoxForm(m => m.SelectedAccountType) .... <input type="submit" value="Export" /> }