对于我的生活,我无法了解如何创建请求对象并在ASP.NET MVC中引入Get和Post参数。
我无法在动作构造函数中定义它们,我只是想直接从请求中提取信息。
答案 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方法上的参数来自查询字符串。
然后将使用localImageUrl,maxWidth,maxHeight和从查询字符串中自动获取的缓存值调用GetImage。