2013-09-27 78 views
0

我創建了一個搜索頁面,它根據查詢字符串參數中設置的參數搜索我的數據庫。搜索頁面效果很好,但是我希望添加更多搜索參數,我不希望網址填充空白查詢字符串。僅發佈包含值的字段 - Webmatrix

說我有一個有10個搜索選項的表單,但只想指定2,是否可以只將這2個發佈到URL而不是全部10個?

如果它會讓您的答案更容易,我可以提供一些測試表單的代碼,如果您願意?

謝謝,加文

+0

此外,我必須補充說,我目前沒有使用AJAX發佈此表單。 – Gavin5511

回答

1

如果您使用JavaScript來提出請求,則可以這樣做。你甚至不需要這樣的表格。下面是一個簡單的例子,使用jQuery的JavaScript(以簡化事情):

@{ 

} 

<!DOCTYPE html> 

<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
     <script type="text/javascript" src="~/Scripts/jquery-1.9.1.min.js"></script> 
     <script> 
      $(function() { 
       $('button').click(function() { 
        var url = [location.protocol, '//', location.host, location.pathname].join(''); 
        var queryAdded = false; 
        $('input[type=text]').each(function() { 
         if ($(this).val() != '') { 
          url += queryAdded ? '&' : '?'; 
          url += $(this).prop('name') + '=' + $(this).val(); 
          queryAdded = true; 
         } 
        }); 
        location.href = url; 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <div> 
      @Html.TextBox("field1") 
     </div> 
     <div> 
      @Html.TextBox("field2") 
     </div> 
     <div> 
      @Html.TextBox("field3") 
     </div> 
     <div> 
      <button>Click</button> 
     </div> 
    </body> 
</html> 
+0

太好了,謝謝邁克。這一切都有道理,但是你能解釋一下「.join('')」部分的作用嗎? – Gavin5511

+1

它使用指定的分隔符將數組的元素組合成字符串(如果沒有指定,則爲逗號)。看到這裏:http://www.w3schools.com/jsref/jsref_join.asp –

+0

好極了。所以我能夠讓頁面發佈到自己,但我試圖修改url變量,因爲它發佈到不同的頁面,我沒有運氣。我嘗試刪除數組(不知道爲什麼你會使用數組來建立一個URL?),並取代了一個字符串「www.facebook.com」,例如,這也不起作用嗎? – Gavin5511