2013-05-07 58 views
2

如何從此查詢字符串中提取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

回答

2

你應該有你的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

1

您可以將參數添加到您的行動來檢索查詢字符串傳遞的值。

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"]得到它。

1

以下示例將查詢?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); 

希望這會有所幫助!

0

您可以通過Request.QueryString訪問這些文件。有幾種方法可以做到這一點。最簡單的可能是Request.QueryString["House"],但請記住這將是一個字符串。 QueryString也有一個AllKeys集合,所以你可以檢查一下,看看實際提供了哪些值。