C# ASP.NET MVC在视图中捕获和使用参数
这是索引视图中的ActionLinkC# ASP.NET MVC在视图中捕获和使用参数,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,这是索引视图中的ActionLink @Html.ActionLink("€ 50-100", "Filter", new { number1 = 50, number2 = 100 }, null) 以下是控制器中捕捉2个参数的过滤方法 [HttpGet] public ActionResult Filter(int number1, int number2) { var result = db.Gifts.Wher
@Html.ActionLink("€ 50-100", "Filter", new { number1 = 50, number2 = 100 }, null)
以下是控制器中捕捉2个参数的过滤方法
[HttpGet]
public ActionResult Filter(int number1, int number2)
{
var result = db.Gifts.Where(c => c.Price > number1 && c.Price <= number2).ToList();
return View(result);
}
[HttpGet]
公共操作结果筛选器(整数1,整数2)
{
var result=db.gives.Where(c=>c.Price>number1&&c.Price根据您的代码,看起来您正试图将一些值从控制器传递到视图
您可以使用ViewBag执行此操作:
控制器:
public ActionResult Filter(int number1, int number2)
{
var result = db.Gifts.Where(c => c.Price > number1 && c.Price <= number2).ToList();
ViewBag.N1 = 50;
ViewBag.N2 = 100;
return View();
}
public class MyModel
{
public Int32 N1 {get;set;}
public Int32 N2 {get;set;}
}
public ActionResult Filter(int number1, int number2)
{
var result = db.Gifts.Where(c => c.Price > number1 && c.Price <= number2).ToList();
return View(new MyModel{N1 = 50, N2 = 100});
}
public ActionResult过滤器(int number1,int number2)
{
var result=db.gives.Where(c=>c.Price>number1&&c.Price c.Price>number1&&c.Price包含筛选参数和结果集的新视图模型:
public class MyViewModel
{
public int Number1 { get; set; }
public int Number2 { get; set; }
public List<Gifts> GiftList { get; set; }
}
您应该创建一个ViewModel,其属性表示结果
、数字1
和数字2
。您可以将模型传递到过滤器
视图,并从@model
Thanx@markpsmith访问值。我是一个初学者,我的理解是,我应该创建一个包含两个属性的类,并使用它们过滤器视图中的属性,对吗?我的过滤器视图已经有了一个模型,我可以同时使用另一个模型吗?@AttilaAlan-你可以不使用两个模型,而是创建一个由你需要的其他类和对象组成的类,并将这个类/模型传递给你的视图。这实际上是非常标准的做法,我想你误解了关于这个问题,OP将number1
和number2
作为查询字符串参数传递给Filter
方法。然后他想在Filter
视图中显示参数。是的@markpsmith这就是我想做的。Thanx.@markpsmith你是对的,我没有仔细查看控制器代码,我只是t发现他想在视图中多次使用相同的值。
@model MyModel
@Html.ActionLink("€ 50-100", "Filter", new { number1 = @Model.N1, number2 = @Model.N2 }, null)
<h3> Choose a gift from the list of € @Model.N1 - @Model.N2 </h3>
public class MyViewModel
{
public int Number1 { get; set; }
public int Number2 { get; set; }
public List<Gifts> GiftList { get; set; }
}
public ActionResult Filter(int number1, int number2)
{
var model = new MyViewModel
{
Number1 = number1,
Number2 = number2,
GiftList = db.Gifts.Where(c => c.Price > number1 && c.Price <= number2).ToList()
}
return View(model);
}
@model MyViewModel
<h3> Choose a gift from the list of € @Model.Number1 - @Model.Number2 </h3>
@foreach(var item in Model.GiftList)
{
...