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