代码之家  ›  专栏  ›  技术社区  ›  Shawn de Wet

表单中的多个Submit按钮均未出现在ASP.Net MVC方法的FormCollection中

  •  0
  • Shawn de Wet  · 技术社区  · 13 年前

    我已经无计可施了。。。我的表单有以下剃刀标记:

    <input class="k-button" type="submit" value="Post" name="SubmitButton" />
    <input class="k-button" type="submit" value="Save" name="SubmitButton" />
    

    我遇到的问题是,控制器操作方法的FormCollection参数在其键/值对中不包括SubmitButton。

    我偶然发现了这个帖子 here 这似乎也有同样的问题。解决方案似乎是使用ActionMethodSelectorAttribute AND来删除[Remote]验证的使用。但我确实需要我的[远程]验证器,所以我不能删除它。是否没有其他解决方案,或者这是我必须处理的某个bug?

    我正在考虑将两个按钮的使用替换为一个Save按钮,然后添加一个“Post”复选框。然后在控制器操作中,我检查Post KeyValue对是否存在。但这还不够理想。我更喜欢用两个按钮。

    编辑:Igor请求后的更多视图标记:

    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(false)
        <fieldset>
            <legend>Edit details for Client Warehouse Request </legend>
            @Html.HiddenFor(model => model.ModelObject.CustomerCode)
            @Html.HiddenFor(model => model.ModelObject.ReqNr)
    
            <div style="table-layout: initial;">
                <div class="columnDivider">
                    <div class="editor-label">
                        @Html.LabelFor(model => model.ModelObject.ReqNr)
                    </div>
                    <div class="editor-field">
                        @Html.DisplayFor(model => model.ModelObject.ReqNr)
                    </div>
                    <div class="clear">
                    </div>
                    <div class="editor-label">
                        @Html.LabelFor(model => model.ModelObject.CreationDate)
                    </div>
                    ... many other fields following the above structure...
                    <input class="k-button" type="submit" value="Post" name="SubmitButton" />
                    <input class="k-button" type="submit" value="Save" name="SubmitButton" />
                </div> 
                <div class="columnDivider">
                   ...some more fields
                </div>
                <div>
                   Here I have a Kendo UI datagrid that gets submitted with the form
                </div>
          </fieldset>
    }
    
    1 回复  |  直到 9 年前
        1
  •  0
  •   Igor    13 年前

    尝试:

    <input type="hidden" name="SubmitButtonValue" id="SubmitButtonValue" />
    
    <input class="k-button" type="submit" value="Post" name="SubmitButton" />
    <input class="k-button" type="submit" value="Save" name="SubmitButton" />
    
    <script type="text/javascript">
      $(document).ready(function(){
        $(".k-button").click(function(){
          $("#SubmitButtonValue").val($(this).val());
        });
      });
    </script>
    

    并检查 "SubmitButtonValue" 键入 FormCollection .