在C#View Helper中使用Request.QueryString

时间:2014-01-16 12:26:11

标签: c# asp.net-mvc-5

我想编写一个View Helper来了解URL中的参数,但我无法访问Request.QueryString:

    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

1 个答案:

答案 0 :(得分:4)

试试这个

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

can request querystring be accessed from htmlhelper

上找到了这个