【发布时间】:2021-01-12 02:10:15
【问题描述】:
我开始学习 C#,但遇到了一个小问题。 我有一个控制器变量如下:
public class HomeController : Controller
{
// Empty List
List<Something> FilteredSomethingLists = new List<Something>();
然后我在控制器中有一个IActionResult 方法,如下所示:
public IActionResult Filter(string Attribute1, string Attribute2, int page)
{
// TestModel will create a list with random data, then filter the list with
// (Attribute1 and 2, then add to the FilteredSomethingLists
foreach (Something p in TestModel.FilterSomething(Attribute1, Attribute2))
{
FilteredSomethingLists.Add(p);
}
...
// Display some result on the first page
return View(...);
}
在上面的Filter方法中,TestModel会首先创建一个随机Something值的列表,然后FilterSomething方法会从列表中过滤出一些SomethingObj给定的属性,然后这些对象被添加进入FilteredSomethingLists。我已经调用了Filter.cshtml中的Filter方法,FilteredSomethingLists中的对象完美的显示在了网页上。
但是,当我有其他方法时:
public IActionResult Paging(int page)
{
Console.WriteLine(FilteredSomethingLists[0].SomeAttribute);
...
return View(...);
}
网页上什么都没有显示,控制台输出也没有,这意味着FilteredSomethingLists仍然是空的,即使调用了Filter方法。
我这样做是因为我想在FilteredSomethingLists 上进行分页,但是再次调用具有不同页码值的Filter 方法将由TestModel 生成一个全新的SomethingLists,所以我想我可以通过调用Filter 来显示FilteredSomethingLists 的第一页,然后为下一页调用Paging,这样我就可以避免重新初始化FilteredSomethingLists。但是没有用。
【问题讨论】:
标签: c# model-view-controller .net-core asp.net-core-mvc