如何在ASP.NET MVC中获取请求参数

时间:2014-11-04 18:07:39

标签: c# asp.net-mvc

对于我的生活,我无法了解如何创建请求对象并在ASP.NET MVC中引入Get和Post参数。

我无法在动作构造函数中定义它们,我只是想直接从请求中提取信息。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

string strParam = HttpContext.Current.Request["someParameter"];

答案 1 :(得分:1)

作为替代方案,您也可以在路线配置中执行此操作。

您的项目“global.asax / global.cs”中应该有一个全局类文件,并且应该有代码来配置Controller Routes,例如......

    private void RegisterRoutes(RouteCollection routes)
    {
        routes.MapRoute("ImageGen_GetImage", "ImageGen/{action}", new { controller = "ImageGen", action = "GetImage", id = UrlParameter.Optional });
    }

然后您的控制器方法可能如下所示,

        [HttpGet()]
    public void GetImage(string localImageUrl, int maxWidth, int maxHeight, string cache)
    {
    }

在此示例场景中,GetImage上的所有参数都不在路径网址“ImageGen / {action}”中。

因此,当您请求http://www.somesite.com/imagegen/getimage时,MVC知道imagegen被映射到ImageGen控制器。因此,它也知道{action}在这里被称为“GetImage”(因为它出现在url中的imagegen之后,并按照该顺序匹配映射中的url)。现在因为在映射MVC的url中没有设置其他参数,所以假设GetImage方法上的参数来自查询字符串。

所以,如果你要去http://www.somesite.com/imagegen/GetImage?localImageUrl=/images/myImage.png&maxWidth=1024&maxHeight=768&cache=1

然后将使用localImageUrl,maxWidth,maxHeight和从查询字符串中自动获取的缓存值调用GetImage。