C# 使用T4MVC时如何从URL中删除参数

C# 使用T4MVC时如何从URL中删除参数,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,t4mvc,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,T4mvc,动作方法看起来像 public virtual ActionResult Show(int productId, bool isValid, bool getByStoreId = false) 当我调用此操作时,我得到如下url .../Product/Show/221?isValid=True&getByStoreId=True 但我只想展示一下 .../Product/Show/221 T4MVC对此有捷径吗 routes.MapRoute(

动作方法看起来像

public virtual ActionResult Show(int productId, bool isValid, bool getByStoreId = false)
当我调用此操作时,我得到如下url

.../Product/Show/221?isValid=True&getByStoreId=True
但我只想展示一下

.../Product/Show/221
T4MVC对此有捷径吗

routes.MapRoute(
                "ProductsShow_Default",
                "Product/{action}/{articleId}",
                MVC.Product.Show()
            );

默认情况下,您在
RouteValueDictionary
中为任何路由中未包含的链接输入的任何参数将默认添加到查询字符串中。避免将它们放入查询字符串的唯一方法是为它们映射路由,但它们仍将显示在URL中。

因此,如果我理解正确,如果我需要需要需要4个参数的操作,但我只想在URL中显示2个参数,那么最好的解决方案是找到一种方法,将该操作与2个参数一起使用,而不是4个参数,因为操作方法中的所有参数都必须是URL的一部分?是的,正确,虽然如果您发现自己正在向控制器发送越来越多的参数,您应该考虑您的设计。扪心自问,有没有其他方法可以让我获得这些数据,而不必将其全部发送到某个操作?如果是post请求,您应该将模型发送回操作,并包含模型中需要包含的所有字段:)