将搜索集成到asp.net MVC站点的header / masterpage中

时间:2011-02-16 16:00:17

标签: asp.net-mvc search razor

我想为我的网站添加搜索功能。我正在考虑使用谷歌自定义搜索... 我需要的是在主页面的标题中有一个搜索框,然后在用户搜索时有一个单独的搜索结果页面。

我该如何实现这个?,因为谷歌给出的代码片段似乎是针对搜索结果页面的?我也可以将它整合到一个仍在开发中的网站吗?

2 个答案:

答案 0 :(得分:2)

按照Google的建议在结果页面上实施代码。然后在您的母版页中添加以下内容

<form id="searchForm" method="get" action="/url-to-your-search-page/" >
  <input id="search" name="search" class="Search" type="text" />
  <input type="submit" value="search" />
</form>

搜索页面上的Google自定义搜索代码将负责其余部分。

<强>更新

您可以使用搜索结果页底部的以下JavaScript来提取搜索查询字符串并执行Google搜索

<script type="text/javascript">
    google.load('search', '1');
    function OnLoad() {
        var s = window.location.search;
        if (s.indexOf('search=') >= 0) {
            s = s.substring(s.indexOf('search=') + 7);
            if (s.indexOf('&') >= 0) {
                s = s.substring(0, s.indexOf('&'));
            }
            s = decodeURIComponent(s.replace('+', ' '));
        }
        else {
            s = "";
        }
        var customSearchControl = new google.search.CustomSearchControl('your-custom-search-id');
        customSearchControl.draw('content');
        customSearchControl.execute(s);
    }
    google.setOnLoadCallback(OnLoad);
</script>

不要忘记在标题

中包含脚本引用
<script src="http://www.google.com/jsapi"></script>

答案 1 :(得分:0)

我认为在创建Google自定义搜索时选择iframe选项是这样做的方法。 它将代码分为搜索框和结果页