Cómo pasar valores al controlador desde el código Javascript en MVC

En realidad tengo un escenario como:

Estoy obteniendo los valores de los registros verificados en GridView a través de Javascript. Ahora necesito enviar esos valores al controlador para eliminar esos registros.

 $(function OnDelete() { $('#btn_Delete').click(function () { gvPaging.PerformCallback(); }); }); function OnBeginCallback(s, e) { var selectedValues = s.GetSelectedKeysOnPage(); e.customArgs["ID"] = ""; for (var i = 0; i < selectedValues.length; i++) { e.customArgs["ID"] += selectedValues[i] + ','; } }  

y mi GridView es así:

  { settings.Name = "gvPaging"; settings.CallbackRouteValues = new { Controller = "GridView", Action = "PagingPartial" }; settings.Width = Unit.Percentage(100); settings.KeyFieldName = "ID"; settings.CommandColumn.ShowSelectCheckbox = true; settings.CommandColumn.SetHeaderTemplateContent(c => { Html.DevExpress().CheckBox(settingsCheckBox => { settingsCheckBox.Name = "cbSelectAll"; settingsCheckBox.Name = "Select All"; settingsCheckBox.Properties.ValueType = typeof(bool); settingsCheckBox.Properties.ClientSideEvents.CheckedChanged = string.Format("function(s, e) {{ if(s.GetChecked()) {0}.SelectRows(); else {0}.UnselectRows(); }}", settings.Name); settingsCheckBox.Checked = c.Grid.VisibleRowCount == c.Grid.Selection.Count; }).Render(); }); settings.SettingsBehavior.AllowSelectByRowClick = true; //settings.Columns.Add("ID"); settings.Columns.Add("Name"); settings.Columns.Add("EmailID"); settings.Columns.Add("MobileNumber"); settings.Columns.Add("Address"); settings.SettingsPager.Position = PagerPosition.Bottom; settings.SettingsPager.FirstPageButton.Visible = true; settings.SettingsPager.LastPageButton.Visible = true; settings.SettingsPager.PageSizeItemSettings.Visible = true; settings.SettingsPager.PageSizeItemSettings.Items = new string[] { "10", "20", "50" }; settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "GridView", Action = "InlineEditingAddNewPartial" }; settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "GridView", Action = "InlineEditingUpdatePartial" }; //settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "GridView", Action = "InlineEditingDeletePartial" }; settings.SettingsEditing.Mode = GridViewEditingMode.EditFormAndDisplayRow; //settings.SettingsBehavior.ConfirmDelete = true; settings.Settings.ShowFilterRow = true; settings.Settings.ShowFilterRowMenu = true; settings.CommandColumn.Visible = true; settings.CommandColumn.ClearFilterButton.Visible = true; settings.CommandColumn.NewButton.Visible = true; //settings.CommandColumn.DeleteButton.Visible = true; settings.CommandColumn.EditButton.Visible = true; settings.Settings.VerticalScrollBarMode = ScrollBarMode.Visible; //settings.ClientSideEvents.SelectionChanged = "SelectionChanged"; settings.ClientSideEvents.BeginCallback = "OnBeginCallback"; }) .Bind(Model) .Render(); 

%>

Puedes usar AJAX dentro de tu script.

Algo como esto

 $.ajax({ url: 'Your method in controller which will delete the records', type: 'POST', data: ' data which you want to send to controler ', }); 

En su controlador, use esta statement para recuperar el valor: Request.Params["ID"]

Considere el siguiente ejemplo: estoy activando el script con un valor de lista usando para datos de tabla de bucle.

  

La función para pasar valores al controlador desde el código Javascript en MVC.

  

en el controlador

  public ActionResult ServiceOutDelete(string id, ServiceOutModels model) { // id will contailn the value of parameter // AS you want return View("ServiceOutViewDetails", model); }