Html.BeginForm("ActionName", "Controller", FormMethod.Post);
を使用しています。しかし、私はに投稿する必要があります:私はIDを渡すにはどうすればよい/コントローラ/アクション/ 23434
?
Html.BeginForm("ActionName", "Controller", FormMethod.Post);
を使用しています。しかし、私はに投稿する必要があります:私はIDを渡すにはどうすればよい/コントローラ/アクション/ 23434
?
Mattの正常に動作する必要があります。それでもFormMethod.Post
に渡している場合は、しかし、あなたはこのようにそれを実行する必要があります。
Html.BeginForm("action","controller", new { Id = 12345 }, FormMethod.Post);
第三及び第四のパラメータではなく、ルート値の属性として扱われId
になります反転します。
Html.BeginForm("action", "controller", new {Id = 12345})
が動作しない場合は、フォームタグに属性を追加します。 – mrblah
パラメータ名を確認してください。routeValues - htmlAttributesではなく、そのパラメータを使用していることを確認してください。 –
Html.BeginForm("action", "controller", new { id = ViewBag.FileID },
FormMethod.Post, new { id = "feedbackform" })
クエリーストリングについては、?type=golden
については、わかりません。もちろん、照会はゲットです。FormMethod.Post
の全目的を弱体化させます。クエーストリングデータが必要な場合は、FormMethod.Get
を使用できます。これは探しているものかもしれません。
さらに、html.beginform
を避け、クエリー・ストリングget + postを手動でフォーム・タグで実行できます。送信ボタンは値がフォーム変数として適切に渡される押された場合、その後
[input type=hidden name="type" value="golden"]
:フォームを使用している場合
第三に、あなたは隠しフィールドを作ることができます。
このメソッドを使用しているときに、既存のルート値が失われています。私のURLは '/ controller/action?type = golden'だったとしましょう。フォームターゲットは'/controller/action/12345'になります。 '/ controller/action/12345?type = golden '。私は既存のルート値を保存して自分自身を追加することができる方法を知っていますか? –
@Akiフォーム内に隠しフィールドとして 'type'を追加してみてください。 –
私はできますが、それは私の問題ではないことが分かります。私がクエリ文字列に 'type'しか持っていなくても、N個のパラメータを持つことができます。これは異なるアクションで異なるかもしれません。それらのすべてのアクションに入り、クエリパラメータを隠しフィールドとして追加するのは本当の苦痛です。 –