0

送信時に外部 URL にリダイレクトして、フォーム データで何らかのアクションを実行し、送信が成功した後もホームページに残るフォームがあります。リダイレクトを使用しましたが、これにより 2 番目のオプションが可能になりますが、最初のオプションは可能になりません。助けてください..

4

2 に答える 2

2

ここにはさまざまな可能性があります。最初の可能性はaction、フォームの属性を外部 URL に直接設定し、returnurl非表示の入力パラメーターを追加することです。フォームが送信されると、処理する外部 URL にデータが POST され、処理が完了すると、外部 URL はreturnurlパラメーターを使用してホームページにリダイレクトされます。

もう 1 つの可能性は、WebClientを使用して POST アクションで外部 URL を呼び出し、処理のためにデータを送信し、同じビューを返すことです。

[HttpPost]
public ActionResult Index(SomeViewModel model)
{
    using (var client = new WebClient())
    {
        var values = new NameValueCollection 
        {
            { "param1", model.Property1 },
            { "param2", model.Property2 },
        };
        // send values for processing to the external url
        var result = client.UploadValues("http://externalurl.com", values);
        // TODO: analyze result
    }
    return View(model);
}
于 2010-10-27T06:31:51.160 に答える
0

これを手動でプログラムする必要があります。たとえば、returnUrl パラメーターを (クエリ文字列などを介して) 2 番目のページに渡すと、そのページがこのパラメーターの読み取りを担当し、独自のリダイレクトを実行します。

于 2010-10-26T20:59:25.717 に答える