2つの別々のWebアプリケーションを使用して2つのサイト(同じドメイン)を持っています。私はあるサイトから別のサイトへのリンクを持つことができるようにしたい。このリンクは他のアプリケーションに大量のデータを送信するので、他のアプリがこのデータを使用して処理できるように、POSTを使用する必要があります。MVC 5外部サイトからJSONを投稿し、データを含むビューを返す
したがって、domain.com/site1のAJAX呼び出しと、JavaScript経由で前記データにアクセスできるdomain.com/site2のビューを起動するPOSTデータを使用することです。
私はコントローラにデータを投稿し、前記データを使ってかみそりビューを返すことができると思いました。
(私はコントローラー= ApiControllerので、このdoens't仕事を知っているのに!)このような何か:
public class Site2Controller : Controller
{
[HttpPost]
public ActionResult Index([FromBody]Dictionary<string, dynamic> postedData)
{
var model = new Site2DataModel();
model.someParam = postedData.someParam;
return View(model);
}
}
そして、私の見解では(これはダムであるなら、私に知らせて):
@model Site2.Site2DataModel
@{
Layout = "~/Views/Site2View.cshtml";
}
<form class="dataForm">
<input type="hidden" name="someParam" value="@Model.someParam"/>
</form>
そして、私のJSで、のようなもの:
var viewData: any = $('.dataForm').serializeArray().reduce(function (obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
var viewModel = viewData.someParam;
//...
繰り返しますが、私は、これは動作しません知っている、との理由は明白です、この状況に対処するためのより良い方法はわかりません。何かご意見は?
が見えます。しかし、この要件は、WebサービスやAPI呼び出しのような他のアーキテクチャ/ソリューションに洗練される可能性があります。あなたが答えを持っている最も簡単なものにあなたの要件を徹底的に熟考してください。 iframeは使用しないでください。 – Nathan