从部分视图重定向到使用 json 数据对象查看
Redirect from partial view to view with json data object
我有一个 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 object" 绑定该视图中的某些内容并打开该视图(或重定向以查看 NewEmp.cshtml).
当您使用 ajax 时,您可以 return 来自您的操作的 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
- All this performed on the server
- 一旦你有了 EmpData,你应该拥有 return
NewEmp
视图所需的一切。
在这种特殊情况下根本不需要 AJAX。如果您需要 post 一些数据或只是重定向到 NewEmployee
操作,您可以使用常规表单提交。
我有一个 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 object" 绑定该视图中的某些内容并打开该视图(或重定向以查看 NewEmp.cshtml).
当您使用 ajax 时,您可以 return 来自您的操作的 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
- All this performed on the server - 一旦你有了 EmpData,你应该拥有 return
NewEmp
视图所需的一切。
在这种特殊情况下根本不需要 AJAX。如果您需要 post 一些数据或只是重定向到 NewEmployee
操作,您可以使用常规表单提交。