【问题标题】:What is `confirmButton` in NerdDinner's ActionResult Delete?NerdDinner 的 ActionResult Delete 中的 `confirmButton` 是什么?
【发布时间】:2010-08-09 14:17:09
【问题描述】:

在 NerdDinner MVC 应用演示中,设置 ActionResult Delete 时定义了 confirmButton

public ActionResult Delete(int id, string confirmButton) {

confirmButton 是什么意思,因为它没有在代码中使用?我假设它返回了被点击的提交按钮的名称,但它只是一个空白字符串。如何知道按下了哪个按钮(例如,您可以在同一页面上拥有 archivedelete(或 yesno)按钮)?

【问题讨论】:

    标签: asp.net-mvc nerddinner


    【解决方案1】:

    如果您查看 Delete.aspx 视图,您将看到以下 html...

    <h2>
        Delete Confirmation
    </h2>
    
    <div>
        <p>Please confirm you want to cancel the dinner titled: 
        <i> <%:Model.Title %>? </i> </p>
    </div>
    
    <% using (Html.BeginForm()) { %>
    
        <input name="confirmButton" type="submit" value="Delete" />        
    
    <% } %>
    

    如您所见,confirmButton 位于此处,其值将传递给您指定的 ActionResult。

    您还可以指定两个按钮,例如...

    <% using (Html.BeginForm()) { %>
    
        <input name="confirmButton" type="submit" value="Delete" />        
        <input name="confirmButton" type="submit" value="Something Else" />        
    
    <% } %>
    

    confirmButton 参数将具有您单击的任何一个的值...

    虽然它在 NerdDinner 中无法正常工作很奇怪,但您可以通过创建一个快速项目并打开默认 HomeController 并添加来轻松测试这一点

        [HttpPost]
        public ActionResult Index(string confirmButton) {
            return View();
        }
    

    在Index.aspx中可以添加

    <% using (Html.BeginForm()) { %>
    
        <input name="confirmButton" type="submit" value="Delete" />        
        <input name="confirmButton" type="submit" value="Something Else" />        
    
    <% } %>
    

    你应该很高兴。

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 2010-12-29
      • 2019-01-26
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 2019-06-30
      相关资源
      最近更新 更多