2011-02-03 2 views
2

Я пытаюсь сделать что-то очень простое: создайте форму, которая отправляет тот же URL-адрес, с которого он запрашивался, с идентификатором.Форма, которая отправляет одно и то же действие, с идентификатором

Если бы я не забочусь о ид, я мог бы сделать:

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

Но так как я хочу ид, я должен использовать другую перегрузку.

Я хотел бы что-то вдоль линий:

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

Я не могу просто жёстко действия и контроллер, потому что форма используется в несколько разных местах. Иногда URL-адрес будет иметь параметры (/items/edit/1, а в других случаях он не будет /items/create)

Должен быть какой-то невероятно простой способ сделать это, что будет заставлять меня чувствовать себя идиотом, когда я его вижу. Итак, что это?


Осветление: То есть идентификатор на элементе HTML, как в <form action="/my/action[/possible arguments]" id="myAwesomeForm"></form>

ответ

2

Использование нуль для действия и контроллера; они будут заполнены от текущего действия и контроллера.

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

<% } %> 
+0

Извините, я уточнил свой вопрос. Я имею в виду атрибут «id» HTML, а не параметр маршрута. В моем примере выше, то, что вы отправили, приведет к '

', чего я не хочу. – notJim

+0

@notJim - о, просто используйте нуль для значений маршрута, а также добавьте FormMethod, чтобы получить правильную подпись. – tvanfosson

0

Просто используйте первую перегрузку (routeValues ​​As Object)

Он будет считать ток, Площадь Имя, имя контроллера и Действие Имя параметры. Сообщение является методом формы по умолчанию.

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

    End Using 
%> 
+0

Проверьте прояснение, я искал HTML 'id', а не' id' на маршруте. – notJim

+0

О, хорошо. Вы всегда можете пойти в старую школу и просто написать html ... <для id = "myAweseomForm" action = "<% = Request.Url.PathAndQuery%>" method = "post"> ... это 2001, но это может проще понять, что делает ваш код, а затем сложный метод HTML-помощника. –

Смежные вопросы