【问题标题】:Which one is better or both are same?哪个更好或两者都一样?
【发布时间】:2023-03-20 17:56:01
【问题描述】:

我有一个表单,它有 2 个按钮“删除”和“编辑”.. 在 Post 上检查哪个按钮提交了请求......这两种方法中哪一种更好,有什么区别还是两者相同?

@if(isPost){
   if(!Request["buttonDelete"].IsEmpty()){
          //Do something
   }
  if(Request["btn"].Equals("buttonDelete")){
    //do something
  }
}

【问题讨论】:

    标签: asp.net razor asp.net-webpages


    【解决方案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"]
    

    无论哪个元素被点击,另一个元素将为空

       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                       
    }
    

    希望有帮助! :)

    【讨论】:

      【解决方案2】:

      如果这是 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
        }
      }
      

      【讨论】:

      • @GautamSharma,为什么不在后端 *.cs 文件上做呢?据我所知,您没有理由在 *.aspx 视图上执行任何逻辑,只需使用适当的事件处理程序进行保存/编辑操作...然后向我们展示更多代码,也许我错过了什么
      • 你没有遗漏任何东西.. 这是 webmatrix 中的 .cshtml 页面......它就像经典的 asp.. 代码和前端在同一个文件中......代码放在 @{ } 块下..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      相关资源
      最近更新 更多