S'il vous plaît aider J'ai essayé tout ce que je pouvais, je veux ouvrir une nouvelle vue avec le paramètre mais dans un nouvel onglet, et mon URL de vue est identique à celle de l'URL Ajax que j'ai. Je suis tellement confus, toujours nouveau à cela.
Ceci est mon code JavaScript: P>
public ActionResult Index(int Id, string MUIGCode) { if (Session["role_id"] == null) { return RedirectToAction("Login", "Home"); } else { var cnn = new SqlConnection(SQLCon); var cmmd = new SqlCommand(); var query = ""; try { query = "SELECT[dbo].[M_UIGH].[MUIGCode] \n " + ",[dbo].[M_UIGH].[CreateDate] \n " + ",[dbo].[M_UIGH].[CompanyID] \n " + ",[dbo].[M_UIGH].[CompanyName] \n " + ",[dbo].[M_UIGH].[BranchID] \n " + ",[dbo].[M_UIGH].[BranchName] \n " + ",[dbo].[M_UIGH].[UserID] \n " + ",[dbo].[M_UIGH].[UserName] \n " + ",[dbo].[M_UIGH].[UserDept] \n " + ",[dbo].[M_UIGD].[Id] \n " + ",[dbo].[M_UIGD].[CostCenter] \n " + ",[dbo].[M_UIGD].[CCName] \n " + ",[dbo].[M_UIGD].[CCLevel] \n " + ",[dbo].[M_UIGD].[ItemGroupCod] \n " + ",[dbo].[M_UIGD].[ItemGroupName] \n " + ",[dbo].[M_UIGD].[CoaItemGroup] \n " + "FROM [dbo].[M_UIGD] \n " + "INNER JOIN [dbo].[M_UIGH] ON [dbo].[M_UIGH].[MUIGCode] = [dbo].[M_UIGD].[MUIGCode] \n " + "WHERE [dbo].[M_UIGD].[MUIGCode] = '" + MUIGCode + "' " + "AND [dbo].[M_UIGD].[Id] = '" + Id + "' "; cnn.Open(); cmmd = new SqlCommand(query, cnn); SqlDataReader dreader = cmmd.ExecuteReader(); MapingUIGD map = new MapingUIGD(); if (dreader.Read()) { map.MUIGCode = dreader.GetString(dreader.GetOrdinal("MUIGCode")); map.Id = dreader.GetInt32(dreader.GetOrdinal("Id")); map.CompanyID = dreader.GetString(dreader.GetOrdinal("CompanyID")); map.CompanyName = dreader.GetString(dreader.GetOrdinal("CompanyName")); map.BranchID = dreader.GetString(dreader.GetOrdinal("BranchID")); map.BranchName = dreader.GetString(dreader.GetOrdinal("BranchName")); map.UserID = dreader.GetString(dreader.GetOrdinal("UserID")); map.UserName = dreader.GetString(dreader.GetOrdinal("UserName")); map.UserDept = dreader.GetString(dreader.GetOrdinal("UserDept")); map.costCenter = dreader.GetString(dreader.GetOrdinal("CostCenter")); map.costName = dreader.GetString(dreader.GetOrdinal("CCName")); map.costLevel = Convert.ToInt32(dreader["CCLevel"]); map.itemGroupCode = dreader.GetString(dreader.GetOrdinal("ItemGroupCod")); map.itemGroupName = dreader.GetString(dreader.GetOrdinal("ItemGroupName")); map.coa = dreader.GetString(dreader.GetOrdinal("CoaItemGroup")); } dreader.Close(); cnn.Close(); ViewBag.Title = "Approval Mapping Per User (ePR)"; return View(map); } catch (Exception e) { throw; } } }
3 Réponses :
Au lieu d'utiliser un appel AJAX, vous pouvez utiliser Cela appellera directement votre action de contrôleur et ouvrez le résultat dans un nouvel onglet. P> html.actionLink code> comme ceci: p>
@ html.actionLink ("linktext", "action", nouveau {contrôleur = "contrôleur"}, nouvelle {cible = "_ vide"}) code> p>
Je suis désolé, j'ai essayé celui-là. Mon problème est que l'URL sur la fonction de réussite Ajax est la même avec URL Ajax.
Que diriez-vous des paramètres que je donne dans les données AJAX? J'ai utilisé Ajax parce que je dois envoyer 2 paramètres, identifiant et code.
Si vous vouliez utiliser la réponse que @jpishko vous a suggéré de devoir ajouter les paramètres comme celui-ci ou vous pouvez ajouter un formulaire à votre code HTML pour regarder quelque chose comme ça p> puis avoir les valeurs d'identifiant et de muigcode que ce dont vous avez besoin. p> p>
Pour ouvrir une vue dans un nouvel onglet, vous pouvez utiliser la cible d'attribut HTML = "_ vide" Utilisez ceci dans HTML ou Ajouter in @ html.actionLink. P>