在MVC中使用参数

时间:2009-12-10 16:05:19

标签: asp.net-mvc

我已经启动并运行了一个ASP.NET MVC站点,但需要对其进行一点改动 - 但不知道如何处理它。

我有一个看起来像的网址 http://server/Oracle/Details/234342 - 显示有关客户编号234342的信息。

现在我想将网址更改为:http://server/Oracle/Details/234342?debug=1。 我想知道调试已经启用,可以在网页上打印更多信息(如加载时间等)。

我如何做到这一点?我尝试更改默认路由,但最后我得到了http://server/Oracle/Details/234342/1 - 这有效,但不是我希望我的网址看起来。

2 个答案:

答案 0 :(得分:1)

您希望在控制器操作中检查Request.QueryString以进行“调试”。例如

[Route("Details/{nCustomer}")]
public ActionResult CustomerPage(int nCustomer)
{
    var debug = Request.QueryString["debug"];
    // More code goes here
}

答案 1 :(得分:0)

您无需更改路线即可支持此方案。生成链接时(例如,通过Html.ActionLink()),您提供的无法映射到路径令牌的任何参数将自动作为查询字符串参数附加到生成的URL。由于活页夹会自动将查询字符串参数映射到操作方法参数,您可以执行以下操作:

public ActionResult Details(int id, int? debug) {
  // you could also use a Boolean for 'debug' if you wanted, and it would bind true / false
}