Javascript 在asp.net mvc中发布并返回到同一页面后,查询字符串参数将被删除
我正在实现一个asp.net mvc5应用程序,并且在post操作和查询字符串参数方面存在问题 我的页面url是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
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
,它将自动填充。这就是缺少的!谢谢这就是我们所缺少的!谢谢