2

我正在尝试在 asp.net mvc 2 rc 应用程序中使用 PRG 模式。

我发现 MVCContrib 项目有一个自定义操作过滤器,它将自动将参数保留在 TempData

在一个动作中,我有以下内容

return this.RedirectToAction(c => c.Requested(accountAnalysis));

但是,这是向请求添加查询字符串参数,例如

http://mysite.com/account/add?model=MyProject.Models.AccountAnalysisViewModel

谁能解释我如何使用 MVCContrib 中的 PassParametersDuringRedirect 过滤器属性来不在查询字符串中传递 ViewModel 类型。

我看到发布了一个补丁来解决这个问题,但是在支持 MVC 2 RC 的最新 MvcContrib 中,它被注释掉如下

public static RedirectToRouteResult RedirectToAction<T>(this Controller controller, Expression<Action<T>> action)
            where T : Controller
        {
            /*var body = action.Body as MethodCallExpression;
            AddParameterValuesFromExpressionToTempData(controller, body);
            var routeValues = Microsoft.Web.Mvc.Internal.ExpressionHelper.GetRouteValuesFromExpression(action);
            RemoveReferenceTypesFromRouteValues(routeValues);
            return new RedirectToRouteResult(routeValues);*/
            return new RedirectToRouteResult<T>(action);
        }

非常感谢任何帮助。

谢谢

4

1 回答 1

1

在与 Jeremy Skinner 聊天后修复。

http://github.com/mvccontrib/MvcContrib/commit/135411386b6817def9aaa493493ff582788ba377

于 2010-01-06T21:37:01.667 回答