清除 ASP.net 中的按钮名称参数
Posted
技术标签:
【中文标题】清除 ASP.net 中的按钮名称参数【英文标题】:Clear Button Name Parameter in ASP.net 【发布时间】:2016-04-19 09:35:49 【问题描述】:嗨,我是 ASP 和 MVC3 的新手,我的问题是如何清除帖子中的按钮名称参数,因为每次单击带有按钮参数的按钮后刷新页面时,我最后一次单击的按钮的值仍然存在,有没有办法在提交后或刷新控制器中的页面或使用 Jquery 时清除这个东西?
谢谢
这是我的代码片段:
[HttpPost]
public ActionResult HistoryPage(HistoryModel model, string btnAction)
if (Session["HistoryId"] != null)
switch (btnAction)
case "Delete History":
DeleteHistory(model, ref deleteHistoryError, ref deleteHistorySucesss);
break;
case "AddHistory":
AddHistory(model);
break;
return View(model);
这里是删除历史记录
private static void DeleteHistory(HistoryModel model, ref string ErrorMessage, ref string SuccessMessage)
foreach (var item in model.HistoryIds)
if (item != "")
bool result = Int32.TryParse(item, out HistoryIds);
if (result)
var History= db.History.Find(HistoryId);
bool HistoryExist = true;
if (History.HistoryId != null)
History.LogicalDelete = true;
History.DateModified = DateTime.Now;
db.SaveChanges();
SuccessMessage = "History successfully deleted";
else
ErrorMessage = "Unable to delete History.";
if (!string.IsNullOrWhiteSpace(ErrorMessage))
SuccessMessage = String.Empty;
我的表单下方的 Cshtml 按钮
<input type="submit" name="btnAction" class="btnMultiDelete button_example button_example_small div-bottom-3 w100Percent txtAlignLeft"
value="Delete History" id="btnDeleteHistory" />
【问题讨论】:
你如何将数据发布到这个控制器? @FrebinFrancis 抱歉,忘记包含 DeleteHistory 代码片段 向我们展示您的 cshtml 代码。 @ramiramilu 在我的cshtml中添加了按钮 @FrebinFrancis 更新问题 【参考方案1】:在浏览器刷新时(单击 F5),浏览器发出最后一个请求(在您的情况下是 post
)。这是浏览器的默认行为。
所以我们必须在这里遵循PRG
模式。 PRG - POST-REDIRECT-GET
。所以在你的代码中而不是返回视图,你必须return RedirectToAction("Get Action Name")
。在这种情况下,浏览器的最后一个请求将是 GET
,当您进行后续刷新时,它将发出 GET
请求而不是 POST
。
你的代码应该是这样的 -
[HttpPost]
public ActionResult HistoryPage(HistoryModel model, string btnAction)
if (Session["HistoryId"] != null)
switch (btnAction)
case "Delete History":
DeleteHistory(model, ref deleteHistoryError, ref deleteHistorySucesss);
break;
case "AddHistory":
AddHistory(model);
break;
return RedirectToAction("Get Action Name ...");
return View(model);
【讨论】:
或者是否可以将return RedirectToAction("Get Action Name ...");
添加到删除的私有函数中?它会覆盖return View(model)
不,这不是一个好习惯,为什么要在私有或业务方法中进行重定向?您必须在控制器操作中进行重定向。
刚刚看到我有条件如果DeleteHistory返回值是错误或成功,添加return RedirectionToAction
如果成功,让我测试一下
是的,基于DeleteHistory
的返回值,您可以return View(model)
或重定向return RedirectToAction("Action name")
。以上是关于清除 ASP.net 中的按钮名称参数的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 点击一下文件名或者一个下载按钮,将文件下载下来怎么做啊???
win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE