我有一个网址
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。
答案 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(或您想要使用的任何其他动词