提交相同操作的表单,带有id

时间:2011-02-03 00:56:17

标签: asp.net-mvc asp.net-mvc-2 routes

我正在尝试做一些看似非常简单的事情:创建一个表单,提交给它的请求相同的URL,带有id。

如果我不关心id,我可以这样做:

<% using(Html.Form()) { %>
    <!-- stuff -->
<% } %>

但是因为我想要id,所以我必须使用不同的重载。

我想要的是:

<% using(Html.Form(some, args, new {id="myAwesomeForm"})) { %>
    <!-- stuff -->
<% } %>

我不能只对操作和控制器进行硬编码,因为表单在几个不同的地方使用。有时,网址会有参数(/items/edit/1,有时则不会/items/create

必须有一些令人难以置信的简单方法,当我看到它时会让我觉得自己像个白痴。那么,它是什么?


澄清:我的意思是HTML元素上的ID,如<form action="/my/action[/possible arguments]" id="myAwesomeForm"></form>

2 个答案:

答案 0 :(得分:2)

对动作和控制器使用null;它们将从当前的动作和控制器中填充。

 <% using (Html.BeginForm( null, null, null, FormMethod.Post, new { id = 3 } )) { %>

 <% } %>

答案 1 :(得分:0)

只需使用第一个重载(routeValues As Object)

它将假设当前,区域名称控制器名称操作名称参数。 发布是默认的表单方法。

<%
    Using Html.BeginForm(New With {.id = 3})

    End Using
%>