从查询字符串请求值

本文关键字:请求 字符串 查询 | 更新日期: 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集合,因此您可以检查它以查看实际提供了哪些值。