Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC在视图中捕获和使用参数_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# ASP.NET MVC在视图中捕获和使用参数

C# 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

这是索引视图中的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.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)
{
...