如何在 asp.net MVC 中使用 RedirectToAction 将模型从一个 Action 方法传递到另一个?尽管我发送了一个填充模型,但我得到的是空模型
Posted
技术标签:
【中文标题】如何在 asp.net MVC 中使用 RedirectToAction 将模型从一个 Action 方法传递到另一个?尽管我发送了一个填充模型,但我得到的是空模型【英文标题】:How to pass model from one Action method to another using RedirectToAction in asp.net MVC ? I am getting null model though I send a populated model 【发布时间】:2016-07-13 16:44:08 【问题描述】:我有一个 JobSeekerViewModel 类。我想将它从操作方法索引发送到详细信息。但是每当我发送时,我都会得到空值。但我的模型已填充。
public class JobSeekerViewModel
public user userJobSeeker get; set;
public employee employeeJobSeeker get; set;
index(login log1)
Return View(log1);
[HttpPost]
index (login log1)
JobSeekerViewModel js = new JobSeekerViewModel();
js.userJobSeeker = log1.userJobSeeker;
js.employeeJobSeeker = log1.employeeJobSeeker;
return Details(js);
Details(JobSeekeerViewModel js)
Return View(js);
【问题讨论】:
【参考方案1】:索引
TempData["jobSeeker"] = jobSeeker;
详情
JobSeekerViewModel jobSeeker = (JobSeekerViewModel)TempData["jobSeeker"];
【讨论】:
【参考方案2】:试试这个
index (JobSeekerViewModel js)
return RedirectToAction("Details", newmodel = js);
【讨论】:
仍然得到空值。 :( 方法接收的name参数是什么,换成我贴的模型 对不起。我的索引收到另一个模型登录。但我想将 JobSeekerViewModel 发送到详细信息。【参考方案3】:这可能对你有帮助,我希望你明白。
Index (login log1)
//get your JobSeekerViewModel and then use it.
return RedirectToAction("Details", new model = jobSeekerViewModel );
Details(JobSeekerViewModel model)
return View(model);
【讨论】:
是的。我的控制器不为空。现在我遇到了一个特殊的错误。即传入字典的模型项的类型为“job_management_two.Models.JobSeekerViewModel”,但该字典需要一个类型为“job_management_two.Models.Login”的模型项 当传递的对象类型与您的 Action 或 View 预期的对象类型不同时,会发生此错误。【参考方案4】:如果您的操作在同一个控制器中,则无需调用RedirectToAction
。
只需调用如下操作:
index (login log1)
JobSeekerViewModel js = new JobSeekerViewModel();
js.userJobSeeker = log1.userJobSeeker;
js.employeeJobSeeker = log1.employeeJobSeeker;
return Details(js);
【讨论】:
【参考方案5】:将模型从一个动作发送到另一个动作 -
在行动中设置模型:
TempData["myId"] = myIdToTransfer;
在另一个 Action 获取模型中:
String userID = TempData["myID"].ToString;
将模型从动作发送到视图
设置模型的操作:
ViewBag.myId = myIdToTransfer;
在视图中获取模型:
@html.ViewBag.myId
【讨论】:
【参考方案6】:当您使用redirectToAction
时,控制器和视图之间不会保留数据,因此您会得到null
要么使用TempData
,要么直接调用details()
方法而不是redirectToAction
阅读此示例:Can we pass model as a parameter in RedirectToAction?
【讨论】:
以上是关于如何在 asp.net MVC 中使用 RedirectToAction 将模型从一个 Action 方法传递到另一个?尽管我发送了一个填充模型,但我得到的是空模型的主要内容,如果未能解决你的问题,请参考以下文章
Aspose.word在asp.net mvc中如何使用的个人总结
如何在使用 HttpClient 使用 Asp Net Web Api 的 Asp Net Mvc 中提供实时数据?