【问题标题】:MVC How to keep search value when navigating between pages?MVC如何在页面之间导航时保​​持搜索值?
【发布时间】:2015-12-12 07:23:17
【问题描述】:

我有一个使用 EMPLID 进行搜索的搜索框。搜索有效,但如果我在搜索后转到任何其他页面(例如:如果我切换到详细信息页面)然后导航回我搜索过的页面,它会显示所有记录。如何保留搜索条件,以便在我在页面之间导航时显示该 EMPLID 的信息?

我的控制器:

public ActionResult Index(string SearchString)
{

    var emp = from e in db.EMPLOYMENTs
              select e;

    if (!String.IsNullOrEmpty(SearchString))
    {
        emp = emp.Where(s => s.EMPLID.Contains(SearchString));
    }

    return View(emp);
}

我的布局:

@using (Html.BeginForm())
{
    <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
            <input class="form-control" placeholder="Search" type="text" name="SearchString">
        </div>
    </form>
}

【问题讨论】:

  • 您可能希望将这些数据填充到会话变量中,然后在每个页面上使用它(如果存在)。
  • 我想使用 cookie 是在页面之间切换时保留数据的最佳方式

标签: c# html .net search model-view-controller


【解决方案1】:

您可以使用TempData 来保留搜索字符串。

像这样在临时数据中添加您的 SearchString-

TempData["SearchString"] = SearchString;

...并在需要时取回该值-

string searchString = TempData["SearchString"] as string;

有关在 ASP.NET MVC 应用程序中传递数据的更多信息,请参阅这篇 msdn 文章

【讨论】:

    【解决方案2】:

    【讨论】:

    • 谢谢!可以举个例子吗?
    • 是的!一会儿,我在手机里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多