2011-02-08 4 views
1

私はMVCを初めて使い、3.0を使い始めました。私はjqueryのを使用して、フォームを含むAA部分図を、ロードするとき、私はパラメータがアクションに追加されることに気付きました:MVC 3フォームアクションパラメータ

/hi/address/edit/1?_=1297158351246&{} 

ASCXファイルには以下が含まれています。

<% using (Html.BeginForm()) { %> 
<% } %> 

私が実現します私はパラメータを削除するために次のコードを呼び出すことができますが、なぜ追加のパラメータとその目的は何かを知りたいですか?

<% using (Html.BeginForm("edit", "address")) { %> 
<% } %> 

UPDATE:フォームはjqueryのを使用してロードされていない場合

、追加のパラメータがフォームアクションに存在しません。

+0

を使用そのように、それはコントロールへのリンクを持っています。 jqueryにフォームの提出時に何かをするように頼んでいたのですか? –

+0

はい、jqueryを使用して関数呼び出しを配線します。この関数はpreventDefault()を呼び出し、ajax呼び出しを行います。 – markpirvine

+0

それで、なぜあなたはsubmitイベントにjQueryを付けているので、そこにコード内にポインタを追加しています。 –

答えて

0

編集リンクで渡している内容を確認できますか?あなたはどこかにエンコードの問題があると思いますか?

アイテムを編集するためにリンクをクリックしたとき、定義されていないパラメータ_が引き出されたように見えますか?

この情報は、正しいコントローラとアクションを選択するために使用され、送信者リターンのコントローラのアクションのパラメータも設定します。

私は100%は確信していませんが、あなたが隠し変数として持っていない限り、BeginForm変数をハードコードしていると、提出時にIDを失うかもしれないと思いますか?

P.S.あなたはかみそりを使用してのMVC 3見て、楽しみのその負荷を使用している場合...

代わり<% %>を使用して内外に破壊のあなたは今のjQueryがそれを置く理由、それは物事を置くわからない@

+0

ルーク、返事をありがとう。私は2つの編集アクションをコントローラ上に持っています。ひとつはhttpgetのためのnull可能なidをintとして受け取り、もうひとつはhttppostのためにintとformcollectionをとるものです。私はかみそりを見て、それはこのプロジェクトのためのオプションではありませんが、それは良い見ています! – markpirvine

+0

オプションはありませんか?本当に?確かに:)新しいcshtmlを更新または作成するまで、aspxビューとascxビューを使用することはできます。だから、httpgetは最初のビュー用であり、ポストはフォーム提出を処理します。 idを隠し変数として定義したり、action属性で定義したりしないと、フォームコレクションやidパラメータからIDを取得すると思いません。 –