来自查询字符串的请求值

问题描述:

如何从此查询字符串中提取House,Car和Work值?来自查询字符串的请求值

http://'mysite'/Result/Environments?House=1&Car=0&Work=1 

然后在下面的LINQ语句中赋值。

操作方法在控制器

public ActionResult Environments() 
{ 
    //int totalSmokers = repository.Results.Where(x=>x.House = 
    return View(); 
} 
+0

HttpContext.Request.params还允许您访问查询字符串 – 2013-05-07 15:00:54

你应该有你的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 
+0

如何让totalSmokers可用于视图? – user2224493 2013-05-07 14:47:58

+0

将'return View()'更改为'return View(totalSmokers)',并将您的视图上的模型类型更改为'int'。 – mattytommo 2013-05-07 14:48:38

+0

@ user2224493或者如果你想使用模型,你可以使用我更新的第二个例子。 – mattytommo 2013-05-07 14:50:18

您可以将参数添加到您的行动来检索查询字符串传递的值。

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集合,所以你可以检查一下,看看实际提供了哪些值。