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