代码之家  ›  专栏  ›  技术社区  ›  Craig

确定使用哪个提交按钮在asp.net MVC中发布表单

  •  2
  • Craig  · 技术社区  · 15 年前

    这是我的查看代码。。。。

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Data.TempPerson>" %>
    <div class="phonePerson">
        <% using (Ajax.BeginForm("Create", new AjaxOptions
           {
               UpdateTargetId = "divList",
               HttpMethod = "Post",
               OnSuccess = "RedoLayout"
           }))
           { %>
        <label for="Name">
            Name:</label>
        <%= Html.TextBox("Name")%>
        <input type="submit" name="Button" id="Save" value="Save" class="btnSave" />
        <div id="phoneList" class="phoneList">
            <table>
                <% foreach (var item in Model.Phones)
                   { %>
                     ... Stuff omitted for space ....
                <% } %>
                <tr>
                    <td colspan="2">
                        <input type="submit" id="Add" name="Button" value="Add another phone" class="btn_AddPhone" />
                    </td>
                </tr>
            </table>
            <% } %>
        </div>
    </div>
    
    3 回复  |  直到 15 年前
        1
  •  3
  •   Lazarus    15 年前

    我想补充一点,我会使用两个表单,每个表单都有一个提交按钮,以确保每个表单只有一个职责。这将有助于分离关注点,并使应用程序更易于测试。

        2
  •  3
  •   Russell Steen    15 年前

    两种方式:

    首先,为名为“Button”的“Create”函数指定一个字符串参数

    public ActionResult Create(string Button)//and other fields
    {
    if (Button == value1) then
        //do stuff
    else if (Button == value2) then
       //do stuff
    end if 
    //return
    }
    

    如果(formcollection[“按钮”]==值1)。。。。

        3
  •  1
  •   Bo Persson tox    11 年前

    例如

    <asp:Button ID="Button1" runat="server" Text="Button One" 
     PostBackUrl="Text.aspx?b=1" UseSubmitBehavior="true" ... / >
    
    <asp:Button ID="Button2" runat="server" Text="Button One" 
     PostBackUrl="Text.aspx?b=2" UseSubmitBehavior="true" ... / >
    

    string mode = HttpContext.Current.Request.QueryString["b"].ToString();
    

    ... 然后根据mode变量的值做不同的事情。