Javascript 在asp.net mvc中发布并返回到同一页面后,查询字符串参数将被删除

Javascript 在asp.net mvc中发布并返回到同一页面后,查询字符串参数将被删除,javascript,asp.net-mvc,post,asp.net-mvc-5,Javascript,Asp.net Mvc,Post,Asp.net Mvc 5,我正在实现一个asp.net mvc5应用程序,并且在post操作和查询字符串参数方面存在问题 我的页面url是http://localhost/site/person/edit?personId=20 [HttpGet] public ActionResult Edit(int personID) { // .... return View(person); } 在这个页面中包含提交按钮,它将执行post方法。 在post方法中,如果Model.Isvalid获取fa

我正在实现一个asp.net mvc5应用程序,并且在post操作和查询字符串参数方面存在问题

我的页面url是
http://localhost/site/person/edit?personId=20

[HttpGet]
public ActionResult Edit(int personID)
{
    // ....   

    return View(person);
}
在这个页面中包含提交按钮,它将执行post方法。 在post方法中,如果Model.Isvalid获取false,我将返回带有Model的视图

[HttpPost]
public ActionResult Edit(Person person)
{
    if (ModelState.IsValid)
    {
          //....
          return RedirectToAction("Index", "Dashboard", new { area = "" });
    }
    else
    {
          return View(person);
    }
}
这是正确的。 但问题是,一旦Model.IsValid设置为false,它将出现在视图中,但没有查询字符串参数。那么URL就像
http://localhost/site/person/edit

是否有方法使用查询字符串参数获取URL。

是。不要在回复帖子时提供(200OK)内容,而是使用查询字符串重定向到GET方法

在帖子中提供内容几乎总是一个坏主意,因为当用户刷新页面时,帖子会再次出现(许多用户代理中会出现一个令人困惑的对话框,询问用户是否确定要重新发送帖子)

是。不要在回复帖子时提供(200OK)内容,而是使用查询字符串重定向到GET方法


在帖子中提供内容几乎总是一个坏主意,因为当用户刷新页面时,帖子会再次出现(许多用户代理中会出现一个令人困惑的对话框,询问用户是否确定要重新发送帖子)

将您的ID添加到帖子方法中:

[HttpPost]
public ActionResult Edit(int personID, Person person)
{
    if (ModelState.IsValid)
    {
          //....
          return RedirectToAction("Index", "Dashboard", new { area = "" });
    }
    else
    {
          return View(person);
    }
}
您的视图还应发布到与上相同的URL:

  @using (Html.BeginForm())

将您的ID添加到POST方法中:

[HttpPost]
public ActionResult Edit(int personID, Person person)
{
    if (ModelState.IsValid)
    {
          //....
          return RedirectToAction("Index", "Dashboard", new { area = "" });
    }
    else
    {
          return View(person);
    }
}
您的视图还应发布到与上相同的URL:

  @using (Html.BeginForm())

我在另一个SO帖子上找到了答案:

我的解决方案是将删除的值直接连接到表单标记上

使用BeginForm()方法:


我在另一个SO帖子上找到了答案:

我的解决方案是将删除的值直接连接到表单标记上

使用BeginForm()方法:


如果person中有
personID
,它将自动填充。如果person中有
personID
,它将自动填充。这就是缺少的!谢谢这就是我们所缺少的!谢谢