Search ASP.NET MVC-构建搜索表单的最佳方式是什么,可以正确地处理SEO和没有JS的用户?

Search ASP.NET MVC-构建搜索表单的最佳方式是什么,可以正确地处理SEO和没有JS的用户?,search,asp.net-mvc-2,seo,Search,Asp.net Mvc 2,Seo,我正在我的应用程序中构建一个搜索引擎,因为我不想在我的URL中有一个查询字符串,我目前正在使用Javascript为我提交搜索词 基本上,我不是使用“表单”,而只是一种输入 <input id="searchBox" class="search" name="searchTerm" tabindex="1" onfocus=" this.className = 'search-alt'; if (this.value=='search...') this.value = ''" type=

我正在我的应用程序中构建一个搜索引擎,因为我不想在我的URL中有一个查询字符串,我目前正在使用Javascript为我提交搜索词

基本上,我不是使用“表单”,而只是一种输入

<input id="searchBox" class="search" name="searchTerm" tabindex="1" onfocus=" this.className = 'search-alt'; if (this.value=='search...') this.value = ''" type="text" onkeypress="searchKeyPress(event,this.form)" maxlength="80" size="28" value="search...">

<script type="text/javascript">
    function searchKeyPress(e, form) {
        var key = e.keyCode || e.which;
        if (key == 13) {window.location.href = '<%: url.Content("~/search") %>/' + $('#searchBox').val();}}
</script>

功能搜索按键(e,表格){
var key=e.keyCode | | e.which;
如果(key==13){window.location.href='/'+$('#searchBox').val();}}
这种方法的问题是“双重的”

  • 如果用户没有Javascript,表单将不会提交
  • 我不确定搜索引擎是否能够使用此搜索表单
  • 所以我的问题是

    我可以在我的页面上使用一个表单元素来提交“{searchTerms}”而不是“{searchTerms}”,同时不使用Javascript吗


    我正在使用ASP.NET MVC 2

    好的,我想我已经找到了解决方案。基本上,如果有查询字符串项,我将使用RedirectToAction

    查看

     <form action="/search/" id="searchForm" method="get">
        <input id="searchBox" class="search-gray" name="searchTerms" tabindex="1" onblur=" if (this.value==''){this.value = 'search...'; this.className = 'search-gray'}" onfocus=" this.className = ''; if (this.value=='search...') {this.value = ''}" type="text" maxlength="80" size="28" value="search...">
    </form>
    

    不再使用javascript。

    好的,我想我已经找到了解决方案。基本上,如果有查询字符串项,我将使用RedirectToAction

    查看

     <form action="/search/" id="searchForm" method="get">
        <input id="searchBox" class="search-gray" name="searchTerms" tabindex="1" onblur=" if (this.value==''){this.value = 'search...'; this.className = 'search-gray'}" onfocus=" this.className = ''; if (this.value=='search...') {this.value = ''}" type="text" maxlength="80" size="28" value="search...">
    </form>
    

    不再使用javascript。

    ASP.NET MVC和
    Page.ResolveClientUrl()
    ?请使用
    Url.Content()
    解析您的Url!求你了,求你了!是的,要么工作。。。我已经做了编辑。。。我使用的是另一个,因为我从一个旧的表单应用程序中快速复制/粘贴。我可能误解了你的问题,但据我所知,没有网络爬虫使用表单,只要标记可以查看文本,并且链接本身有许多指向它的高质量反向链接,那么标记的语义也不重要。ASP.NET MVC和
    Page.ResolveClientUrl()
    ?请使用
    Url.Content()
    解析您的Url!求你了,求你了!是的,要么工作。。。我已经做了编辑。。。我使用的是另一个,因为我从一个旧的表单应用程序中快速地复制/粘贴了一个脏东西。我可能误解了你的问题,但据我所知,没有网络爬虫使用表单,也没有什么语义标记,只要它能查看文本,并且链接本身有许多高质量的反向链接。