Razor 仅为Webmatrix中包含值的字段过帐

Razor 仅为Webmatrix中包含值的字段过帐,razor,webmatrix,Razor,Webmatrix,我已经创建了一个搜索页面,它根据查询字符串参数中设置的参数搜索我的数据库。搜索页面工作得很好,但当我希望在中添加越来越多的搜索参数时,我不希望URL中填充空白查询字符串 假设我有一个包含10个搜索选项的表单,但只想指定2个,是否可以只将这2个选项发布到URL而不是全部10个选项?如果使用JavaScript进行请求,您可以这样做。你甚至不需要表格。下面是一个简单的例子,它使用jQuery作为JavaScript(简化事情): @{ } $(函数(){ $(“按钮”)。单击(函数(){ var u

我已经创建了一个搜索页面,它根据查询字符串参数中设置的参数搜索我的数据库。搜索页面工作得很好,但当我希望在中添加越来越多的搜索参数时,我不希望URL中填充空白查询字符串


假设我有一个包含10个搜索选项的表单,但只想指定2个,是否可以只将这2个选项发布到URL而不是全部10个选项?

如果使用JavaScript进行请求,您可以这样做。你甚至不需要表格。下面是一个简单的例子,它使用jQuery作为JavaScript(简化事情):

@{
}
$(函数(){
$(“按钮”)。单击(函数(){
var url=[location.protocol,'/',location.host,location.pathname].join('';
var queryAdded=false;
$('input[type=text]')。每个(函数(){
if($(this.val()!=“”){
url+=查询添加的?'&':'?';
url+=$(this.prop('name')+'='+$(this.val();
queryAdded=true;
}
});
location.href=url;
});
});
@Html.TextBox(“字段1”)
@Html.TextBox(“字段2”)
@Html.TextBox(“字段3”)
点击

另外,我必须补充一点,我目前没有使用AJAX发布此表单。太好了,谢谢Mike。这一切都有道理,但是你能解释一下“.join(“”)”部分的作用吗?它使用指定的分隔符(如果没有指定分隔符,则使用逗号)将数组的元素组合成字符串。看这里:好的,太好了。所以我可以让页面发布到自己,但是我试图修改url变量,让它发布到不同的页面,我没有运气。我尝试删除数组(不确定为什么要使用数组来构建URL?)并用字符串“www.facebook.com”替换eg,但这也不起作用?在该网站上,
主机名将解析为“stackoverflow.com/”。
路径名
将在此页面上解析为“问题/…”。因此,如果您想在现有站点中发布到Page2.cshtml,请将“location.pathname”替换为“Page2.cshtml”。我已经编辑了上面的代码以删除路径名,并包括“contact.cshtml”,我想在其中提交querystring参数,但它不起作用?
@{

}

<!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>