【发布时间】:2017-06-02 02:04:02
【问题描述】:
我有两个控制器
-
设置控制器
操作 - GetAvailableLocationsFor
-
家庭控制器
动作 - 索引
我想要达到的步骤
- 对
GetAvailableLocationsFor进行ajax调用,然后从成功回调中获取对象数据。此操作无需查看。 - 现在接收到对象数据后,在 HOMECONTROLLER 中再次调用 Index Action 的 ajax 并将对象传递到那里。
以下是我可以实现的目标。
HomeController - GetAvailableLocationsFor
public ActionResult GetAvailableLocationsFor(int accountId, int groupId)
{
FullConfigMV configData = SetLoader.GetSettings(accountId, groupId);
return // HOW TO RETURN configData from Here to first ajax call
}
HomeController - 索引操作
[HttpPost]
public ActionResult Index(FullConfigMV data)
{
//SECOND AJAX CALL SHOULD COME HERE
}
嵌套 Ajax 调用
<script>
$(document).ready(function()
{
$("#tan").change(function()
{
alert(this.value);
$.ajax({
type: 'POST',
url: '/Settings/GetAvailableLocationsFor',
data: { accountId: 28462, groupId: 35},
success: function (data) { // data should represent configObj
$.ajax({
type: 'POST',
url: '/Home/Index',
data: // WHAT TO WRITE HERE,
success: function (data) {
//WHATEVER
},
error: function () {
DisplayError('Failed to load the data.');
}
});
},
error: function () {
DisplayError('Failed to load the data.');
}
});
});
});
</script>
【问题讨论】:
-
嗨,您真的需要第二次调用 ajax 吗?我的意思是你可以在成功回调后使用 Url.Action ('','') 和所有必需的数据。
-
return Json(configData, JsonRequestBehavior.AllowGet);和data: data(但这可以简单地使用对一种方法的 ajax 调用来完成 - 不清楚为什么要使用两种方法) -
@YashveerSingh:您能指导我如何实现这一目标吗?
-
@StephenMuecke:感谢您的回复。我在
GetAvailableLocationsFor中有一些逻辑,有时需要独立于GetAvailableLocationsFor中的逻辑调用索引 -
@StephenMuecke 在某些情况下,我只想调用索引逻辑。在某些情况下,我希望调用
GetAvailableLocationsFor的逻辑,然后调用索引。
标签: jquery ajax asp.net-mvc asp.net-mvc-5