我想在RedirectToAction中传递对象.这是我的代码:
RouteValueDictionary dict = new RouteValueDictionary();
dict.Add("searchJob", searchJob);
return RedirectToAction("SearchJob", "SearchJob", dict);
其中searchJob是SearchJob的实例.但是我没有关于SearchJob操作方法的数据.相反,我得到searchJob = Entity.SearchJob的查询字符串.请帮我.我在做什么错了?
最新回答
- 2021-1-111 #
- 2021-1-112 #
您可以尝试:
return RedirectToAction("SearchJob", "SearchJob", new RouteValueDictionary(searchJob)
通过
searchJob
进入RouteValueDictionary
构造函数将分解searchJob
反对并传递SearchJob
的每个属性 类作为顶级路由值。使用默认模型联编程序,将操作定义为:
public ActionResult SearchJob(SearchJob searchJob)
会收到完全补水的
SearchJob
- 2021-1-113 #
您不能将类传递给RedirectToAction方法,如果要通过查询字符串或通过POST传递整个对象,则可以使用XML或JSON序列化对象,并在接收器控制器中反序列化对象. 如果您使用这种方法来注意序列化对象的大小。
- 2021-1-114 #
尝试使用跨页发布,您可以确定Prevoiuse页面类型,并使用它作为对象.
相关问题
- c#:如何保护webconfig中存储的密码?c#asp.netasp.netmvciiswebconfig2021-01-11 20:29
- 如何通过aspnet mvc c#获取浏览网站的客户端的mac地址c#asp.netasp.netmvc2021-01-11 07:25
- c#:如何验证webClient请求?c#asp.netwebclient2021-01-12 00:28
- c#:在ASPNET中加密Cookiec#asp.netencryptioncryptography2021-01-11 22:26
- c#:查询结果不能被多次枚举c#asp.netlinqentityframeworkentityframework42021-01-11 12:59
您不能将类传递给这样的重定向操作.重定向是通过URL进行的. URL是一个字符串,因此不能包含类(在这里将对象序列化为url确实不合逻辑)
相反,您可以使用
TempData
并在操作中被重定向
执行完以上代码后,TempData将不再包含searchJob. TempData通常用于单次读取。
但是我不类似上面的方式.如果我在您的位置并想按名称搜索职位,我会添加诸如
这样的路线参数并通过参数将其接收并生效
这样,您可以获得更好的用户和HTTP友好URL,并且从Action的角度来看,它将从外部获取所需的所有参数.