【发布时间】:2016-10-19 20:32:44
【问题描述】:
我有 2 个站点(同一个域),使用 2 个单独的 Web 应用程序。我希望能够拥有从一个站点到另一个站点的链接。该链接会将大量数据发送到其他应用程序,因此我需要使用 POST,以便其他应用程序可以使用和处理这些数据。
所以想法是在 domain.com/site1 上使用 AJAX 调用并发布数据,这将在 domain.com/site2 上启动一个视图,该视图将可以通过 JavaScript 访问所述数据。
我认为我可以将数据发布到控制器并返回带有所述数据的剃刀视图。
类似这样的东西(虽然我知道这不起作用,因为 Controller != ApiController):
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;
//...
再次,我知道这不起作用,原因很明显,但我不知道有什么更好的方法来处理这种情况。有什么想法吗?
【问题讨论】:
-
看起来您想将数据从站点 1 发布到站点 2。但是,可以将此要求细化为其他架构/解决方案,例如 Web 服务或 API 调用。仔细考虑并将您的要求简化为最简单的要求,您将得到答案。并且不要使用 iframe。
标签: javascript c# asp.net asp.net-mvc razor