0
votes

Vue ouverte dans nouvel onglet avec Ajax Paramètre C # MVC

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;
            }
        }
    }


0 commentaires

3 Réponses :


0
votes

Au lieu d'utiliser un appel AJAX, vous pouvez utiliser html.actionLink comme ceci:

@ html.actionLink ("linktext", "action", nouveau {contrôleur = "contrôleur"}, nouvelle {cible = "_ vide"})

Cela appellera directement votre action de contrôleur et ouvrez le résultat dans un nouvel onglet.


2 commentaires

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.



0
votes

Si vous vouliez utiliser la réponse que @jpishko vous a suggéré de devoir ajouter les paramètres comme celui-ci xxx

ou vous pouvez ajouter un formulaire à votre code HTML pour regarder quelque chose comme ça xxx

puis avoir les valeurs d'identifiant et de muigcode que ce dont vous avez besoin.


0 commentaires

0
votes

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.


0 commentaires