读取?=动态设置调试模式的参数

时间:2014-02-04 18:31:07

标签: asp.net asp.net-mvc razor

我想知道如何从网址中读取参数,即。 localhost:12345?debug=true并能够设置调试模式。我最初想要使用我默认使用的相同控制器,但是当我尝试设置#define DEBUG时出现错误,因为它不在文件的开头,这意味着我需要一个单独的控制器来执行此操作,但是我如何检查是否存在?debug=true,并检查debug是否设置为true而不是false?

2 个答案:

答案 0 :(得分:1)

你为自己做了太多的工作。在web.config中,您可以将编译设置为处于调试模式(或不是)

<compilation debug="true">

如果在web.config中设置了此项,请使用框架告诉您是否处于调试模式。如果上面一行(debug =“true”),那么HttpContext.Current.IsDebuggingEnabled将返回true。

if (HttpContext.Current.IsDebuggingEnabled)
{
    DoSomethingDebuggy();
}
else
{
    DoSomethingElseCompletely();
} 

现在,您不再需要为调试模式附加随机查询字符串(我相信这会使您的路由和链接更加快乐)。但是......如果你真的想保留那个查询字符串,那么在你的控制器/动作中,你可以使用以下内容:

public ActionResult Home(){
    var debugParam = Request.QueryString["debug"];
    //be sure to check for null or empty string before casting to a bool
}

答案 1 :(得分:0)

因为在我的项目中,在.cshtml文件中,我使用razor来检查调试器是否已设置,我只是添加了一个额外的参数,|| Request.QueryString [“string”] ==“value”,它解决了我的问题。一行修复,其中string是您要查找的参数的名称。