从查询字符串请求值
本文关键字:请求 字符串 查询 | 更新日期: 2023-09-27 18:12:24
如何从这个查询字符串中提取房屋,汽车和工作值?
http://'mysite'/Result/Environments?House=1&Car=0&Work=1
然后在下面的LINQ语句中赋值。
控制器中的动作方法
public ActionResult Environments()
{
//int totalSmokers = repository.Results.Where(x=>x.House =
return View();
}
你应该让你的ActionResult
把它们作为参数,像这样(我假设bool
,如果它们是int
,把它们改成int
)。
public ActionResult Environments(bool House, bool Car, bool Work)
然后你可以在LINQ语句中使用它们,比如:
int totalSmokers = repository.Results
.Where(x => x.House == House && x.Car == Car && x.Work == Work)
.Count();
更简洁的是,您可以创建一个模型(并像您在注释中要求的那样在视图中返回它),类似于:
public class SmokersModel
{
public bool House { get; set; }
public bool Car { get; set; }
public bool Work { get; set; }
public int TotalSmokers { get; set; }
}
然后整理你的动作方法,你可以这样做:
public ActionResult Environment(SmokersModel Model)
{
Model.TotalSmokers = repository.Results
.Where(x => x.House == Model.House && x.Car == Model.Car && x.Work == Model.Work)
.Count();
return View(Model);
}
然后更改视图的模型类型为SmokersModel
:
@model SmokersModel
您可以为Action添加参数以检索在查询字符串中传递的值。
public ActionResult Environments(int House, int Car, int Work)
{
//int totalSmokers = repository.Results.Where(x=>x.House ==
return View();
}
你也可以在你的函数中使用Request["House"], Request["Car"] or Request["Work"]
。
下面的示例将查询?House=1
写入控制台。
Uri baseUri = new Uri ("http://mysite.com/");
Uri myUri = new Uri (baseUri, "/Result/Environments?House=1&Car=0&Work=1");
Console.WriteLine(myUri.Query);
希望这对你有帮助!
您可以通过Request.QueryString
访问它们。有几种方法可以做到这一点。最简单的可能是Request.QueryString["House"]
,但请记住这将是一个字符串。QueryString也有一个AllKeys
集合,因此您可以检查它以查看实际提供了哪些值。