如何从此查询字符串中提取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 :(得分: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
答案 1 :(得分:1)
您可以向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"]
来获取它。
答案 2 :(得分: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);
希望这有帮助!
答案 3 :(得分:0)
您可以通过Request.QueryString
访问这些内容。有几种方法可以做到这一点。最简单的可能是Request.QueryString["House"]
,但请记住,这将是一个字符串。 QueryString还有一个AllKeys
集合,因此您可以检查它以查看实际提供的值。