2011-02-03 8 views
2

私は非常に簡単なことをしようとしています。要求された同じURLにIDを付けて送信するフォームを作成します。idが同じアクションにサブミットするフォーム

私は私が行うことができ、IDを気にしなかった場合:

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

しかし、私はIDが欲しい以来、私は別のオーバーロードを使用する必要があります。フォームが別の場所のカップルで使用されているため

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

が、私はちょうど、アクションやコントローラをハードコーディングすることはできません。

は、私はの線に沿って何かをしたいと思います。場合によってはURLにパラメータ(/items/edit/1)があり、それ以外の場合は/items/create

私はそれを見ると私を馬鹿に感じさせるいくつかの信じられないほど簡単な方法があるはずです。だから、それは何ですか?


解明:Iアクションとコントローラのヌル<form action="/my/action[/possible arguments]" id="myAwesomeForm"></form>

答えて

2

使用のように、HTML要素にIDを意味します。現在のアクションとコントローラーから入力されます。

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

<% } %> 
+0

申し訳ありませんが、私は私の質問を明確にしました。私はHTMLアトリビュートで、ルートパラメータではない 'id'を意味します。上の私の例では、あなたが投稿したものは、 '

'という結果になります。 – notJim

+0

@notJim - ああ、ルート値にもnullを使用し、正しい署名を得るためにFormMethodを追加してください。 – tvanfosson

0

ジャスト(オブジェクトとしてrouteValues)最初のオーバーロードを使用

これは、現在、エリア名コントローラ名アクション名パラメータを仮定します。 投稿がデフォルトのフォームメソッドです。

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

    End Using 
%> 
+0

明確化をチェックして、私はルートの 'id'ではなく、HTMLの' id'を探していました。 – notJim

+0

よろしいですか?あなたはいつも古い学校に行くことができ、ちょうどHTMLを書くことができます... ...それは2001年です。あなたのコードが複雑なHTMLヘルパーメソッドをやっていることを理解しやすくなります。 –

関連する問題