从局部视图重定向到带有json数据对象的视图
本文关键字:视图 json 数据 对象 局部 重定向 | 更新日期: 2023-09-27 17:50:34
我有一个json数据对象,我需要从部分视图传递到视图与REDIRECT。
假设下面是我的局部视图(_createEmp)。cshtml): -
Note:- This partial view is in different view or page
<script type="text/javascript">
$(document).ready(function () {
LoadData();
});
function LoadData() {
$.ajax({
type: "GET",
url: baseURL + "Employee/GetEmpInfo",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (data) {
console.log(data);
**EmpData** = data; // EmpData object
},
error: function (error) {
console.log("Error: " + error);
}
});
}
</script>
<div>
<input type="submit" value="Save" onclick="SetEmpInfo()" />
</div>
我想转移EmpData对象到一个不同的视图(让我们说NewEmp.cshtml),绑定的东西在该视图从传递的"EmpData对象"和打开该视图(或重定向查看NewEmp.cshtml)。
当您使用ajax时,您可以从您的操作返回URL,并在javascript中重定向它。
如果看不到你的控制器动作,你需要做这样的事情:
控制器public ActionResult GetEmpInfo()
{
// Do stuff
return Json(new { success = true, redirecturl = Url.Action("GetEmpInfoSuccess") });
}
然后在javascript的成功处理程序中添加如下内容:
Javascript(在你的成功处理程序中)
success: function (data) {
if (data.success == true)
{
window.location = result.redirecturl;
}
}
向Employee/GetEmpInfo
发出请求以获取数据并成功重定向到其他视图-听起来不正确
我认为你可以一次访问服务器完成所有这些:
- 写一个Action,接收
GetEmpInfo
接收到的所有参数。我们叫它NewEmployee
。 - 如果
GetEmpInfo
行动是你的代码,重用它的逻辑在NewEmployee
行动得到EmpData
。如果不是你的代码,你可以用HttpClient
发出异步请求,得到EmpData
- 所有这些都在服务器上执行 - 一旦你有EmpData,你应该有一切你需要返回
NewEmp
视图。
在这种特殊情况下,根本不需要AJAX。您可以使用常规表单提交,以防您需要发布一些数据或只是重定向到NewEmployee
动作。