T4MVC - 处理可选参数

Raf*_*res 3 c# asp.net-mvc t4mvc

我正在使用.NET 3.5,MVC 2和T4MVC 2.6.42 ......

我有以下行动:

public virtual ActionResult Index(string id, int page = 1)
Run Code Online (Sandbox Code Playgroud)

以下路线:

routes.MapRoute(
    "Products", // Route name
    "Products/{id}", // URL with parameters
    new { controller = "Products", action = "Index", id = UrlParameter.Optional, page = UrlParameter.Optional }, // Parameter defaults
    new string[] { "Web.Controllers" }
);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试调用时,MVC.Products.Index("anything")我得到一个"没有重载方法'索引'需要'1'参数"异常.MVC.Products.Index()然而,呼叫是有效的.

我不应该省略"page"参数,因为它默认为'1'?

注意:我已尝试将路由中的页面参数默认为1,但无法正常工作.

注2:还尝试了[可选]属性但没有成功.

Dav*_*bbo 5

虽然你弄错了错误的C#版本的问题,但为了将来的参考,有一种方法可以做到这一点.你可以写:

MVC.Products.Index().AddRouteValue("id", "anything");
Run Code Online (Sandbox Code Playgroud)

这使您可以添加单个参数的值以及方法调用传递的值.