Asp.net mvc ActionResult中的参数

Asp.net mvc ActionResult中的参数,asp.net-mvc,umbraco,umbraco7,Asp.net Mvc,Umbraco,Umbraco7,在将一个普通的MVC项目迁移到一个普通的Umbraco项目时,我面临着几个问题。其中之一是使用查询参数,并将它们传输到我的索引中 工作MVC项目的旧操作结果: public ActionResult Index(int value1, int value2, bool value3 = false) {...} 新的ActionResult,在香草翁布拉科项目中工作 public override ActionResult Index(RenderModel model) {...} 但是我

在将一个普通的MVC项目迁移到一个普通的Umbraco项目时,我面临着几个问题。其中之一是使用查询参数,并将它们传输到我的索引中

工作MVC项目的旧操作结果:

public ActionResult Index(int value1, int value2, bool value3 = false)
{...}
新的ActionResult,在香草翁布拉科项目中工作

public override ActionResult Index(RenderModel model)
{...}
但是我需要原始项目中的参数(来自querystring)。 我试着简单地添加它们:

public override ActionResult Index(RenderModel model, int value1, int value2, bool value3 = false)
{...}
但是当我执行后一个操作时,我得到了错误
'Controller.Index(RenderModel,int,int,bool):找不到合适的方法来重写'


我缺少什么?

您不能将这些值作为参数传递。您应该从查询字符串中提取它们

public override ActionResult Index(RenderModel model)
{
     var value1 = Request["value1"];
     var value2 = Request["value2"];
     var value3 = Request["value3"];
     ...
}

不能将这些值作为参数传递。您应该从查询字符串中提取它们

public override ActionResult Index(RenderModel model)
{
     var value1 = Request["value1"];
     var value2 = Request["value2"];
     var value3 = Request["value3"];
     ...
}

该错误意味着并非所有参数都按其应加载的方式加载。只需让它们都接受null作为值,并检查在调用过程中得到的结果

public override ActionResult Index(RenderModel model, int? value1, int? value2, bool value3 = false)
{...}

该错误意味着并非所有参数都按其应加载的方式加载。只需让它们都接受null作为值,并检查在调用过程中得到的结果

public override ActionResult Index(RenderModel model, int? value1, int? value2, bool value3 = false)
{...}

为什么呢?(当它在香草MVC项目中工作时)这是因为当您在umbraco中使用DocType控制器时,它的行为与常规MVC控制器不同。为什么?(当它在香草MVC项目中工作时)这是因为当您在umbraco中使用DocType控制器时,它的行为与常规MVC控制器不同。