为什么网址会更改为我发布数据的操作名称?

时间:2017-10-27 12:40:31

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api razor

我有这个控制器

  [HttpPost]
        //[Bind("")]
        public ActionResult AddStories(Stories st, HttpPostedFileBase files)
        {
            try
            {
                if (files != null)
                {
                    string filePath = Path.Combine(Server.MapPath("~/UploadedFiles/"), Path.GetFileName(files.FileName));
                    files.SaveAs(filePath);
                }

                st.Image = Path.GetFileName(files.FileName);
                listofStories.Clear();
                listofStories = bo.GetAllImages();

                if (bo.insertImages(st))
                {
                    ViewBag.Data = "Added";

                    ViewBag.Grid = listofStories;

                    ViewBag.Style = "display:none";
                    ViewBag.StyleAdd = "";
                }
                else
                {

                }
            }
            catch (Exception ex)
            {
                ViewBag.Data = ex.Message;
            }


            return View("GetStories", st);
        } 

为此,我有一个嵌入在主视图中的局部视图, GetStories

当我向其提交数据时,URL会更改为/ Stories / AddStories,但在将数据发布到AddStories之后,我希望它是父级视图,例如/ Stories / GetStories。

我尝试了几件事,但没有任何作用。

我天真。

1 个答案:

答案 0 :(得分:0)

发布时,您的浏览器会导航到帖子网址。之后只有两种方法让它显示不同的网址:

  • 而不是返回视图,就好像他们已经点击了该网址,将重定向返回到首选网址(因此浏览器会发布帖子后跟get)< / LI>
  • 使用客户端技巧来更改显示的网址 - 例如replaceState (取决于浏览器)

例如,当您发布此问题时,您的浏览器对/questions/ask/submit进行了POST,并且该路线后面的C#的最后一行是重定向到/questions/46975286/why-does-the-url-changes-to-the-action-name-to-which-i-have-posted-the-data