【发布时间】:2018-05-05 15:28:08
【问题描述】:
我想使用 Ajax 脚本调用视图:
在主视图中:
<script>
var onCommand = function (column, command, record, recordIndex, cellIndex) {
Ext.Msg.alert('record = ' + record.data.ID);
Ext.Ajax.request({
url: '/Details/',
method: 'GET',
params: {
id: record.data.ID
},
success: function (response) {
var result = (response.responseText);
if (result != "") {
modelName = result;
CreateLookUp(combo, id, false, true);
} else {
CreateLookUp(combo, id, true, false);
}
}
});
}
</script>
控制器:
// GET: Bob/Details/5
public ActionResult Details(String ID)
{
int id = Convert.ToInt32(ID);
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
BobRepository bobRepository = new BobRepository();
Bob bob = bobRepository.GetBob(id);
if (bob == null)
{
return HttpNotFound();
}
return View(bob);
}
调用控制器的函数调用,不返回turget视图。是什么原因?
【问题讨论】:
-
在成功处理程序中执行
console.log(response)并检查它是否是预期的输出。此外,您应该为 ajax 调用返回部分视图结果。 -
是的。响应返回所有 html 代码。
-
那你的意思是turget view没有返回???
-
在浏览器中,我停留在旧视图上。我需要切换到一个新的,其代码已在答案中返回。
-
如果你想切换到一个全新的视图,你为什么要进行 ajax 调用?为什么不提交普通表单并让服务器返回重定向结果? ajax 的全部意义在于为用户提供部分页面更新。看起来您正在调用其他方法
CreateLookUp。我们不知道里面是什么以及它应该做什么。只有你知道!
标签: asp.net-mvc asp.net-ajax ext.net