Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从部分视图重定向到使用json数据对象的视图_C#_Asp.net_Ajax_Asp.net Mvc_Asp.net Ajax - Fatal编程技术网

C# 从部分视图重定向到使用json数据对象的视图

C# 从部分视图重定向到使用json数据对象的视图,c#,asp.net,ajax,asp.net-mvc,asp.net-ajax,C#,Asp.net,Ajax,Asp.net Mvc,Asp.net Ajax,我有一个json数据对象,需要通过重定向从部分视图传递到另一个视图 下面是我的部分视图(_createEmp.cshtml):- 注意:-此部分视图位于不同的视图或页面中 $(文档).ready(函数(){ LoadData(); }); 函数LoadData(){ $.ajax({ 键入:“获取”, url:baseURL+“员工/GetEmpInfo”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, async:true, 成功:功能(数据)

我有一个json数据对象,需要通过重定向从部分视图传递到另一个视图

下面是我的部分视图(_createEmp.cshtml):-

注意:-此部分视图位于不同的视图或页面中
$(文档).ready(函数(){
LoadData();
});
函数LoadData(){
$.ajax({
键入:“获取”,
url:baseURL+“员工/GetEmpInfo”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
async:true,
成功:功能(数据){
控制台日志(数据);
**EmpData**=data;//EmpData对象
},
错误:函数(错误){
日志(“错误:+错误”);
}
});
}

我想将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(在成功处理程序中)


Employee/GetEmpInfo
发出请求以获取数据并在成功时重定向到其他视图-听起来不太正确

我认为您只需访问服务器一次就可以完成所有这一切:

  • 编写一个操作,接收
    GetEmpInfo
    接收的所有参数。我们把它叫做
    NewEmployee
  • 如果
    GetEmpInfo
    操作是您的代码,重用
    NewEmployee
    操作中的逻辑以获取
    EmpData
    。如果不是您的代码,您可以使用issue async request和
    HttpClient
    并获取
    EmpData
    ——所有这些都在服务器上执行
  • 一旦您有了EmpData,您就应该拥有返回
    NewEmp
    视图所需的一切
在这种特殊情况下,根本不需要AJAX。如果您需要发布一些数据或只是重定向到
NewEmployee
操作,您可以使用常规表单提交

public ActionResult GetEmpInfo()
{
    // Do stuff
    return Json(new { success = true, redirecturl = Url.Action("GetEmpInfoSuccess") });
}
success: function (data) {
            if (data.success == true)
            {
               window.location = result.redirecturl;
             }
        }