簡體   English   中英

ASP.NET MVC捕捉和在視圖中使用參數

[英]ASP.NET MVC Catching and Using Parameter In The View

這是索引視圖中的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);
        }

一切正常,但我想例如在過濾器視圖中使用參數;

<h3> Choose a gift from the list of € number1 - number2 </h3>

我怎樣才能做到這一點?

新的ViewModel合並了過濾器參數和結果集:

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>

您將像這樣遍歷“ Gifts結果集:

@foreach(var item in Model.GiftList)
{
...

根據您的代碼,您似乎正在嘗試將一些值從控制器傳遞給視圖。

您可以使用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();
}

視圖:
@ Html.ActionLink(“€50-100”,“ Filter”,新的{number1 = @ ViewBag.N1,number2 = @ ViewBag.N2},null)

從€列表中選擇一份禮物@ ViewBag.N1-@ ViewBag.N2

或使用模型:

控制器:

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});
}

視圖:

@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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM