从自身刷新局部视图

时间:2015-03-09 14:59:50

标签: jquery asp.net-mvc asp.net-mvc-4 asp.net-mvc-partialview

所以我得到了一个真实的,我确定,非常愚蠢的问题。

所以我得到了我的主视图,我称之为局部视图。

以下是从控制器调用局部视图的代码。

        public ActionResult DetailsBref(int id, string n, string m)
    {
        //id = id de l'initiative, n = user, m = mobile
        ViewBag.initiative = id;
        ViewBag.user = int.Parse(n);

        var retourContenu = new List<Contenu>();
        var listUser = new List<Utilisateur>();

        WebRequestHandler handler = new WebRequestHandler();
        //Client http pour se connecter à la web api
        HttpClient MyClient = new HttpClient(handler);

        //secure
        CS_Cryptage crypt = new CS_Cryptage();
        string authInfo = crypt.Crypter("StageChwapi", 3);
        //string authInfo = "StageChwapi";
        authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
        MyClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authInfo);

        MyClient.BaseAddress = new Uri("http://localhost:62624/");
        MyClient.DefaultRequestHeaders.Accept.Clear();
        MyClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //demande du Json
        /*Récupération des contenus*/
        HttpResponseMessage responseContent = MyClient.GetAsync("api/ApiStage/GetContenu/" + id).Result; //contact de la méthode GetProfil
        if (responseContent.IsSuccessStatusCode)
        {
            retourContenu.AddRange(responseContent.Content.ReadAsAsync<List<Contenu>>().Result); //permet le mappage depuis le Json
        }
        /*Récupération des utilisateurs*/
        HttpResponseMessage responseUtilisateur;
        foreach (var tmp in retourContenu)
        {
            responseUtilisateur = MyClient.GetAsync("api/ApiStage/GetUtilisateur/" + tmp.FkIdutilisateur).Result;
            if (responseContent.IsSuccessStatusCode)
            {
                //var user = 
                listUser.Add(responseUtilisateur.Content.ReadAsAsync<Utilisateur>().Result); //permet le mappage depuis le Json
                //tmp.NomPrenom = user.Nom + " " + user.Prenom;
            }
        }

        ViewBag.Contenu = retourContenu;
        ViewBag.Utilisateurs = listUser;
        ViewBag.Mobile = m;
        return PartialView(@"~\Views\Shared\_DetailsBref.cshtml", retourContenu);
    }

JScode在主视图中显示它。

<script type="text/javascript">
    function getView(id, n) {
        var url = "@Html.Raw(Url.Action("DetailsBref", "Alfred", new { id = "-id", n = "-n" }))";
        url = url.replace("-id", id);
        url = url.replace("-n", n);
        $('#mainContent').load(url);
    }
</script>

Atm部分视图的参数是硬编码的。问题是局部视图是一个讨论线程,我可以通过单击主视图中的按钮来显示它。 但在局部视图中,我想添加编辑帖子的可能性,当它完成后,只重新加载局部视图。此时,用户可以编辑他的文本,修改将保存在数据库中,并在重新加载整个项目时显示,但不会重新加载。

这是控制器中的SaveUpdate方法,在用户完成时调用。

        [ValidateInput(false)]
    public ActionResult SaveUpdate(string editor1, int idcontenu, int user)
    {
        string save = "";
        if (editor1 != null)
            save = TraitementCommentaire(editor1);
        var c = new Contenu();
        c.Idcontenu = idcontenu;
        c.FkIdutilisateur = user;
        c.Donnee = Encoding.Default.GetBytes(editor1);
        c.Datemodif = System.DateTime.Now;

        WebRequestHandler handler = new WebRequestHandler();
        //Client http pour se connecter à la web api
        HttpClient MyClient = new HttpClient(handler);

        //secure
        CS_Cryptage crypt = new CS_Cryptage();
        string authInfo = crypt.Crypter("StageChwapi", 3);
        //string authInfo = "StageChwapi";
        authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
        MyClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authInfo);

        MyClient.BaseAddress = new Uri("http://localhost:62624/");
        MyClient.DefaultRequestHeaders.Accept.Clear();
        MyClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //demande du Json
        HttpResponseMessage response = MyClient.PostAsJsonAsync("api/ApiStage/PostUpdateContenu", c).Result;
        if (response.IsSuccessStatusCode)
        {
            //textHtml.Text = response.Content.ReadAsAsync<string>().Result; //permet le mappage depuis le Json
        }

        return new EmptyResult();
    }

部分视图中的调用就像那样

    <script type="text/javascript">
    function getView(id, n) {
        var url = "@Html.Raw(Url.Action("DetailsBref", "Alfred", new { id = "-id", n = "-n" }))";
        url = url.replace("-id", id);
        url = url.replace("-n", n);
        $('#mainContent').load(url);
    }
</script>

我在JQuery中称之为:

 getView(40375,5489);

最后,这就是重点。我知道了。

http://i.stack.imgur.com/VqbnT.png

感谢我抽出时间!

祝你有个美好的一天!

0 个答案:

没有答案