我有一个有2个按钮的表单"删除"并且"编辑" ..在帖子上检查哪个按钮提交了请求...两种方法中哪一个更好并且是否有任何差异或两者相同?
@if(isPost){
if(!Request["buttonDelete"].IsEmpty()){
//Do something
}
if(Request["btn"].Equals("buttonDelete")){
//do something
}
}
答案 0 :(得分:1)
如果这是ASP MVC,则这两种方法都不正确。您必须为保存和编辑分别执行操作:
public ActionResult Edit(Entity item){
// do stuff
return RedirectToAction('Index', new { lastAction = 'Edit' });
}
public ActionResult Save(Entity item){
// do stuff
return RedirectToAction('Index', new { lastAction = 'Delete' });
}
然后,在索引视图中,您可以检查' lastAction'参数:
@{
if(!Request.Params["lastAction"] == "Delete"){
//do something
} else if(Request["lastAction"] == "Edit"){
//do something
}
}
答案 1 :(得分:1)
假设您有像这样的HTML
<form method="post">
<input type="text" name="txtName" value="Vishal" />
<input type="submit" name="btnEdit" value="Edit" />
<input type="submit" name="btnDelete" value="Delete" />
</form>
这里有两个按钮,有编辑和删除操作。现在,当您在服务器端提交表单时,您可以在表单集合参数之下单击元素,您可以访问
Request.Params["btnDelete"]
Request.Params["btnEdit"]
单击任何元素,另一个元素将为null
Request.Params["btnEdit"] will become null when you click on Delete button
same way Request.Params["btnDelete"] will become null when you click on Edit button
您可以查看
if (!string.IsNullOrEmpty(Request.QueryString["Edit"]))
{
// do edit
}
希望有所帮助! :)