具有更多可变参数的URL映射

时间:2011-08-24 13:53:53

标签: asp.net-mvc

我可以使用更多格式的网址:

site.net/Controller/Function/AnyStringProperty
site.net/Controller/Function/AnyIntProperty
site.net/Controller/Function/AnyStringProperty/AnyIntProperty

在控制器中我可以为Property1和Property2编写任何逻辑,但它看起来像是脏的。

其他方式是写类似的东西 site.net/Controller/Function/AnyDefautlForStringProperty/AnyIntProperty

除了

site.net/Controller/Function/AnyIntProperty

有没有可能在routes.MapRoute函数中如何做到这一点?或者在其他地方,然后在控制器?

routes.MapRoute(
"Controller/Function",
"Controller/Function/{AnyStringProperty}/{AnyIntProperty},
new { controller = "Controller", action = "Function", AnyStringProperty = "", AnyIntProperty = ""}
);

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。

这是我过去使用的内容:

       context.MapRoute(
            "default_sub_resource",
            "prefix/{controller}/{resource}/{subresource}/{action}"
        )

        context.MapRoute(
            "default_resource",
            "prefix/{controller}/{resource}/{action}"
        )

        context.MapRoute(
            "default",
            "prefix/{controller}/{action}"
        )

我在行动之前包含了参数,但你可以把它们放在你喜欢的地方。