asp.net-mvc - 将搜索框添加到母版页

标签 asp.net-mvc vb.net asp.net-mvc-2 web-applications

我正在尝试将搜索框添加到 ASP.Net MVC Web 应用程序中的母版页。让我困惑的是如何在母版页中正确实现它。那么用户在这个搜索框中输入数据,从MVC的角度应该如何处理数据?我知道我可以使用他母版页的代码,但我不应该。我目前正在尝试为此使用用户控件,但我不确定如何正确实现它,并且在线资源似乎有限。创建一个 HTML 助手是最好的吗?

总结:在 MVC 母版页中实现一个搜索框,该搜索框定向到不同的网站并包含用户在搜索框中键入的查询。

使用更好吗:

  • 母版页的代码隐藏
  • 用户控件
  • 或者创建一个单独的 HTML 帮助程序。

更新:

好的,根据 queen3 的建议,我实现了一个 SearchController 并使用 HTML Helper BeginForm 生成一个搜索框。

Controller 操作:

        Function SearchWiki(ByVal q As String) As ActionResult
            Return Redirect("http://home/search/Results.aspx?k=" & q & "&s=IT%20FAQ")
        End Function

在母版页中:

<% Using Html.BeginForm("SearchWiki", "Search", FormMethod.Post)%>
                                <input type="text" name="q" />
                                <input type="submit" value="Search" />
                            <% End Using%>

但是当我尝试调试时,SearchWiki 函数永远不会被调用,因此,当我在搜索框中键入内容并点击“搜索”时,什么也没有发生。

最佳答案

如果您要使用 ASP.NET MVC,请忘记代码隐藏和用户控件。您需要 HTML、CSS 和 JavaScript。

我想你想要类似的东西

<form action="<%= Url.Action("Index", "Search") %>" method="post">
   <input type="text" name="q" />
</form>

有了助手,就会像这样

<% Html.BeginForm("Index", "Search") %>
   <input type="text" name="q" />
<% Html.EndForm() %>

只需将其放入母版页中适合您网站设计的位置即可。然后创建 SearchController 来处理请求,并返回包含搜索结果的 View()。如果您接受类似 google 的搜索请求/Search?q=text,则可以使表单使用 GET 而不是 POST。

Controller 非常简单:

public class SearchController: Controller
{
  public ActionResult Index(string q)
  {
    return View(SearchHelper.DoSearch(q));
    // or return Redirect("http://site?q=" + q) if you want redirect
  }
}

关于asp.net-mvc - 将搜索框添加到母版页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711576/

相关文章:

asp.net - Web.Debug.config 和 Web.Release.Config 文件的用途是什么?

c# - 尝试获取用于在 ASP.NET Core MVC 中播种数据的注入(inject)服务

sql - MongoDb 中的模式

asp.net-mvc - Visual Studio 2013-未安装Visual Basic/Visual C#Web模板

vb.net - 关键字 'Shared' 在 VB.NET 中是什么意思?

c# - Linq-在嵌套集合中查找元素

c# - 如何在asp.net MVC 2应用程序中的自定义ValidationAttribute内部访问其他属性值?

asp.net-mvc - @Html.DisplayNameFor 详细模型

.net - 在一个安装程序 exe 中一起安装 .NET Framework 和 VB.NET Apps

asp.net - 用于验证的数据注释,至少一个必填字段?