4

asp.net 4.0を使用し、WebフォームでルーティングしてわかりやすいURLを作成しています。

複数のレベルを持つルートのマスターページのフォーム要素に正しい「アクション」値が割り当てられていないことを除いて、ルーティングは正常に機能しています。

たとえば、... / customer / 12345で参照した場合のルート(customer / {customerid})は、フォームの「action」属性に12345のみを表示します。これに関する問題は、それが完了しておらず、ポストバックが失敗し、「パスへのアクセスに使用されるHTTP動詞POSTは許可されていません」というエラーが発生することです。アクションを「customer / 12345」(Firebugを使用)として更新すると、ポストバック正常に動作します。

customer / customerのような静的ルートを使用する場合でもエラーが発生し、フォームのアクション値として「customer/customer」ではなく「customer」のみが入力されます。基本的に、ルート全体ではなく、ルートの最後の部分のみをアクション属性に配置します。なんで?

これを修正する方法について何かアイデアはありますか?

4

2 に答える 2

2

イベントのようform1.Action = Request.Url.PathAndQuery;]にフォーム アクションをオーバーライドすることで、これを回避できます。Page_Load

于 2011-07-06T12:10:02.123 に答える
0

この関連トピックを参照してください。Request.RawUrlの代わりにRequest.Url.PathAndQuery、どの縫い目を使用して同じ値を返します。

于 2014-10-09T14:29:48.837 に答える