首页 > 解决方案 > MVCController 数据不持久

问题描述

我正在使用 Visual Studio 2019。我在使用控制器方法时遇到了一些问题。

我的控制器中有一个简单的方法Index。在页面加载期间,Index执行正常工作。成功获取所有经销商数据。

这段代码工作得很好:

public ActionResult Index(int? page=1)
{
    int PageSize = 30;
    int skip = PageSize * (page.GetValueOrDefault() - 1);
    var Data = GetDealersData(PageSize, skip);
    Data.PageSize = PageSize;

    TempData["currentPageIndex"] = page.GetValueOrDefault();
    TempData["PageSize"] = PageSize;
    TempData["Total"] = Data.Total;

    return View(Data.Data.ToPagedList(page.GetValueOrDefault(),PageSize, Data.Total));
}

我有一个文本框并将它的值传递给我的IndexActionResult:

@using (Html.BeginForm("Index", "Dealer",FormMethod.Post))
{
    <input type="text" value="" name="txtDealer" placeholder="Search Dealers by Name, City or State" />
    <img src="/assets/images/search.png" class="search-icon">
}

后面的代码:

[HttpPost]
public ActionResult Index(string txtDealer,int? page = 1)
{
    string searchDetails = txtDealer;
    int PageSize = 30;
    int skip = PageSize * (page.GetValueOrDefault() - 1);
    var Data = GetDealersDataByName(PageSize, skip, searchDetails);
    Data.PageSize = PageSize;

    TempData["currentPageIndex"] = page.GetValueOrDefault();
    TempData["PageSize"] = PageSize;
    TempData["Total"] = Data.Total;

    return View(Data.Data.ToPagedList(page.GetValueOrDefault(), PageSize, Data.Total));
}

现在,问题来了,来自搜索文本框的数据是从 Web API 获取的。但是由于页面刷新,我的页面完全为空。

如何持久化数据,所以在我的页面上显示搜索到的经销商的结果,在同一页面(Index.cshtml)?

标签: asp.net-mvcasp.net-mvc-5

解决方案


您不需要发布请求,但无论如何,您可以添加TempData["searchName"] = txtDealer;或不使用您的发布功能,我们将发布数据用于敏感数据而不是用于搜索,您只能使用获取功能并添加参数 txtDealer 。


推荐阅读