我有两个控制器
设置控制器
行动 - GetAvailableLocationsFor
的HomeController
行动 - 指数
我想要实现的步骤
GetAvailableLocationsFor
进行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>
答案 0 :(得分:0)
更好的方法是在GetAvailableLocationsFor
操作
return RedirectToAction("Index", "Home", configData)
然后在你的ajax成功而不是第二次ajax调用。只需处理Home / Index返回的内容。
答案 1 :(得分:0)
从JSON
方法返回GetAvailableLocationsFor
数据。在第二次ajax调用之后,您可以发送如下数据:
data: JSON.parse(response),
这会在Index
方法