使用Html.BeginForm和jQuery提交添加动态参数

时间:2010-09-21 13:59:09

标签: jquery asp.net-mvc form-submit routevalues html.beginform

// html
<% using (Html.BeginForm("MyAction", "MyController", 
                   new { id = ViewContext.RouteData.Values["id"] },
                   FormMethod.Post, 
                   new { enctype = "multipart/form-data", class="myForm" }))
 { %>
    <input type="file" name="blah" />
 <% } %>



// script
$container.find('.myButton').click(function() {
    $container.find('.myForm').submit();
});

在提交表单之前,我需要添加一些额外的参数(路由值),这些参数只能在提交时计算。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

您可以在提交之前在表单中附加隐藏字段:

$container.find('.myButton').click(function() {
    var form = $container.find('.myForm');
    form.append(
        $(document.createElement('input'))
            .attr('type', 'hidden')
            .attr('name', 'somename')
            .attr('type', 'somecalculatedvalue')
    );
    form.submit();
});