cp1*_*100 0 javascript asp.net-mvc post asp.net-mvc-5
我正在实现一个asp.net mvc5应用程序,并且在post操作和查询字符串参数方面存在问题.
我的页面网址是 http://localhost/site/person/edit?personId=20
[HttpGet]
public ActionResult Edit(int personID)
{
// ....
return View(person);
}
Run Code Online (Sandbox Code Playgroud)
在此页面中包含提交按钮,它将执行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);
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常.但问题是,一旦Model.IsValid变为false,它将进入视图但没有查询字符串参数.然后URL就像http://localhost/site/person/edit
有没有办法获取带有查询字符串参数的URL.
我在另一个SO帖子上找到了答案: 当表单验证失败时,错过了查询字符串参数
对我来说,解决方案是将删除的值直接连接到表单标记上.
使用BeginForm()方法:
@using (Html.BeginForm("Edit", "Person", routeValues: new {personID = Model.id}, method: FormMethod.Post))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |