使用大量变量创建asp.net mvc控制器动作的最佳方法是什么

时间:2011-02-18 04:57:35

标签: asp.net-mvc routing

我有一个网址

http://www.mysite.com/RunReport

和控制器操作:

    [CompressFilter]
    public ActionResult RunReport(int field1, int field2, int field3, int field4, int field5, int field6, . . .)

因此,要使用过滤器运行查询,您必须执行以下操作:

http://www.mysite.com/RunReport/0/0/0/0/0/1/0. . . .

有没有更好的方法来做这个没有这么难看的网址和路由?

我希望能够拥有映射到特定查询的持久性URL。

1 个答案:

答案 0 :(得分:4)

您不必在路线中拥有这些字段。您可以将它们放在查询字符串中,如下所示:

RunReport?字段3 = 1

然后你可以将它们组合成一个像这样的POCO类

public class MyModel
{
    int? Field1 { get; set; }
    int? Field2 { get; set; }
    int? Field3 { get; set; }
}

这使您的字段可选,您的Model类也可以包含一些智能,例如,可以确定您要运行哪个报告。

控制器动作

public ActionResult RunReport(MyModel model)

这适用于GET或POST(或您想要使用的任何其他动词