1

コントローラーにリダイレクトして JSON オブジェクトを POST メソッドとして渡す方法はありますか? GET メソッドを使用してこれを実現できますResponse.Redirect("../ControllerName/ActionName?parameter=" + jsonQuery, true);が、GET メソッドにはクエリ文字列の長さに制限があります。一定の長さの後、例外がスローされます。

また、代替方法は非常に役立ちます。私が達成しようとしていることは次のとおりです。

WebForms と MVC を並行して実行するアプリケーションがあります。Webフォームのページとそのページにレポートボタンがあります。[レポート] ボタンをクリックすると、コード ビハインド (aspx.cs ファイル) にデータをまとめてコントローラーに渡し、そこからモデルにデータを入力してビューに渡す必要があります。

私はどんな提案や代替方法も受け入れます。

4

2 に答える 2

0

投稿に簡単にリダイレクトすることはできません。リダイレクトによって新しい URL がクライアントに送り返され、クライアントが新しい URL になりgetます。

自己投稿する特別なフォームにリダイレクトできます (投稿パラメーターをページにダンプすると、ページが読み込まれると JavaScript が実行され、完成したフォームが最終アクションに送信されます)。このように行うと(AJAXを使用していないと仮定して)、通常のフォームエンコードされたパラメーターを送信することになるため、例のようにJSONを単一の入力タグ、次のようなもの:

<input id="myparam" type="hidden" name="myparam">

var someJsonString = "{---this string is built on the server---}";
document.getElementById("myparam").value = someJsonString;

HttpClientまたは同様の方法を使用して自分でコントローラーアクションに投稿するWebClient場合、ブラウザーからではなく、発信接続を行うサーバーとして投稿することになります。つまり、IP はサーバーの発信 IP になり、Cookie はありません。 、認証などをブラウザから。

WebForms と MVC の間を行き来する方法はありますが、前回見たときは簡単な作業ではありませんでした。通常のコンテキストを使用可能な MVC コンテキストに変えるには、多くのカスタム要素が必要でした。

于 2013-11-05T21:53:13.837 に答える
-1

これはあなたが探しているもののように見えます...

コード ビハインドの .net 投稿フォーム

String ali = "your string";

            byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(ali);

            WebRequest req = WebRequest.Create("http://www.pay-pos.com/test");

            req.ContentType = "application/x-www-form-urlencoded"; 
            req.ContentLength = byteArray.Length;
            req.Method = "POST"; 

            Stream dataStream = req.GetRequestStream(); 
            dataStream.Write(byteArray, 0, byteArray.Length); 
            dataStream.Close();

            HttpWebResponse response = (HttpWebResponse)req.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());
            String responseString = reader.ReadToEnd();

            response.Close();
于 2013-11-05T21:45:02.423 に答える