我有一个基本控制器,它需要几个泛型,没有什么特别花哨的。
public class SystemBaseController<TForm, TFormViewModel> : Controller
where TForm : class, IForm
where TFormViewModel : class, IViewModel
好吧,没什么大不了的。我有一个接受 viewModel 的方法“CompleteForm”,看起来有点像这样......
public ActionResult CompleteForm(TFormViewModel viewModel)
{
//does some stuff
return this.RedirectToAction(c => c.FormInfo(viewModel));
}
问题是,继承这个的控制器,就像这样
public class SalesFormController : SystemBaseController<SalesForm, SalesViewModel>
{ }
我最终从 MvcContrib 收到一个错误-此时控制器名称必须以“控制器”结尾...
public RedirectToRouteResult(Expression<Action<T>> expression)
: this(expression, expr => Microsoft.Web.Mvc.Internal.ExpressionHelper.GetRouteValuesFromExpression(expr)) {}
传入的表达式是正确的(SystemBaseController blahblah),但我不确定为什么它 1.)说最后没有控制器,以及 2.)如果我将所有东西都拉到控制器中(从底座中取出),就可以了正好。我是否需要编写或设置自己的某种动作过滤器,或者我缺少什么?