繁体   English   中英

如何在 layout.html 中添加搜索栏,以便在 controller 中处理?

[英]How to add a search bar to layout.html so that it is processed in the controller?

我试图使搜索可以从应用程序中的任何位置访问,并通过 controller 中的常用操作方法进行处理。 我真的需要你的帮助。

“首页”controller中的操作方法:

public IActionResult Index(string searchTerm)
{
    return View((!string.IsNullOrEmpty(searchTerm))
        ? repository.Products.Where(
            c => c.Name.ToLower().Contains(searchTerm.ToLower())).ToList()
        : RedirectToAction(nameof(ManList)));
}

更深入地讲,我试图将字符串searchTerm传递给布局以使用它(这是它在索引视图中的工作方式),但我不知道该怎么做

您可以为此使用ViewData字典。

ViewData["searchTerm"] = searchTerm;

//Then reference this anywhere in the cshtml

@ViewData["searchTerm"]

如果要从 controller 传递数据进行查看,可以使用ViewData["xx"]ViewBag.xxTempData["xx"]

您可以参考此链接以了解有关如何使用它们以及它们之间的区别的更多信息。

可以使用asp.net核心ViewComponent来解决这个问题。 视图组件有自己的视图和后端逻辑,可以在应用程序的任何地方调用,例如控制器或视图。

您可以通过以下文章更好地了解视图组件的工作原理: 在 ASP.NET 内核中查看组件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM