什么是NerdDinner的ActionResult Delete中的`confirmButton`?

时间:2010-08-09 14:17:10

标签: asp.net-mvc nerddinner

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

public ActionResult Delete(int id, string confirmButton) {

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

1 个答案:

答案 0 :(得分: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" />        

<% } %>

你应该好好去。