2014-01-16 38 views
2

我想写一个视图助手将了解在URL中的参数,但我不能让访问的Request.QueryString:使用的Request.QueryString内C#视图助手

public static MvcHtmlString SortDirectionArrow(this HtmlHelper html, string column) 
    { 
     string desc = Request.QueryString["desc"].ToString(); 
     string currentSortedColumn = Request.QueryString["sort"].ToString(); 

     if (desc == "False" && currentSortedColumn == column) 
     { 
      return new MvcHtmlString("desc"); 
     } 
     else{ 
      return new MvcHtmlString(""); 
     } 
    } 

,你可以”牛逼只需创建HTTPRequestBase的新版本,因为它是一个接口:

 HttpRequest Request = new HttpRequest(); // or    
     HttpRequestBase Request = new HttpRequestBase(); 

http://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring(v=vs.110).aspx

回答

4

试试这个

var desc = html.ViewContext.HttpContext.Request.QueryString.Get("desc"); 

发现这对can request querystring be accessed from htmlhelper

+0

谢谢!所以“这个”让我可以访问视图的东西......我只是不知道我不得不钻到目标为止。任何松散类型的var的原因? – Jimmyt1988

+0

即使我不知道它。那谢谢啦。我的搜索技巧帮助两者;)谈论var它允许匿名类型,它被称为惰性编码 –

+2

var不是松散类型,它只是推断。从编译器的角度来看,明确指出类型是什么 - 它只是个人偏好或任何您遵循的代码风格准则而已。 – Chris