上面的问题非常有趣,我花了一段时间才回到我之前编写的 mvc 应用程序。答案很简单,但并不明显。
在当前的 mvc3 中,即使您将对象作为匿名类型传递,将您的视图映射到您的视图模型,它总是会计算出集合类型并以某种方式将其附加到 url,在这种情况下,它将整个案例附加到 url
http://www.website.com/param=system.linq.enumerable.where.select ..
任何正确的方法是将其包装在 routevaluedictionary
new RouteValueDictionary(new { controller = Constants.HOMECONTROLLER, action = Constants.APPLYAPP }));
如果您将任何东西从一个动作传递到另一个动作,请使用这个
return new RedirectToRouteResult(Constants.DEFAULTROUTE,
new RouteValueDictionary(new { controller = Constants.HOMECONTROLLER, action = Constants.APPLYAPP }));
而不是 RedirecttoAction,因为这似乎会导致上面的 url。
感谢 MattyTommo 的帮助,但在我的情况下它无关紧要,但它可能对其他人有帮助。我根本无法将 mattytommo 的回复标记为答案,因为它实际上误解了我的要求,也许我的要求不正确但也误导了我。