Bonjour,
Je développe une application asp.net mvc, EF, et j’utilise les extensions de devexpress.
Je change la connexion au choix d'un item de combobox, cela marhe très bien.
Mon petit souci est de pouvoir rediriger après le choix d'un item vers une action d'un controlleur (exemple vers Home/Index).
Code dans _Layout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 @Html.DevExpress().ComboBox( settings => { settings.Name = "ListItemTest"; settings.Enabled = true; settings.Properties.ValueField = "value"; settings.Properties.TextField = "description"; settings.Properties.ClientSideEvents.SelectedIndexChanged = "function(s, e){SelectedId(s,e)}"; }).BindList(obj.Descendants("Base").Select(x => new { DbName = x.Attribute("value").Value, AgenceName = x.Attribute("description").Value }).ToList()).GetHtml() .... .... .... <script> function SelectedId(s, e) { s == ComboBox var data = { SelectedItem: s.GetValue(), }; $.ajax({ url: "/Home/Index", type: "POST", dataType: "json", contentType: 'application/json', data: JSON.stringify(data), }); } </script>
Code d'Action Index de HomeController
Code action testView de HomeController
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 [HttpPost] public ActionResult Index(string SelectedItem) { ViewBag.testVar = SelectedItem; Session["Provider"] = "System.Data.SqlClient"; Session["DbName"] = SelectedItem; Session["ServerName"] = "localhost"; Session["User"] = "sa"; Session["Password"] = "password"; Session["DataModel"] = "MyDataModel"; return RedirectToAction("Home", "testView"); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @{ ViewBag.Title = "testView"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>testView</h2> @ViewBag.testVar
Alors le code de l'action Index s'exécute correctement et change de connexion, c'est juste la partie de redirection qui ne marche pas.
Avez-vous une idée ?
Partager