C# 将javascript值传递给控制器C

C# 将javascript值传递给控制器C,c#,jquery,asp.net-mvc,forms,twitter-bootstrap,C#,Jquery,Asp.net Mvc,Forms,Twitter Bootstrap,我在我的网站上创建了一个搜索功能,允许用户选择要搜索的表。选择列表位于使用引导在下拉菜单中呈现的下拉列表中。我面临的问题是,当窗体运行时,从下拉菜单中传递到控制器的所选项的值,而不是在下拉菜单中选择的值 任何帮助都将不胜感激 **搜索功能** <div class="col-lg-6"> @{using (Html.BeginForm("Results", "Searchv2", FormMethod.Get)) { <div class="in

我在我的网站上创建了一个搜索功能,允许用户选择要搜索的表。选择列表位于使用引导在下拉菜单中呈现的下拉列表中。我面临的问题是,当窗体运行时,从下拉菜单中传递到控制器的所选项的值,而不是在下拉菜单中选择的值

任何帮助都将不胜感激

**搜索功能**

<div class="col-lg-6">
    @{using (Html.BeginForm("Results", "Searchv2", FormMethod.Get))
    {
        <div class="input-group">
            <div class="input-group-btn">
                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Action <span class="caret"></span></button>
                <ul class="dropdown-menu">
                    @foreach (var searchType in new[] { "User", "Restaurant", "Cuisine" })
                    {
                        <li><a href="">@searchType</a></li>
                    }
                </ul>
                <input type="hidden" name="SearchBy" />
            </div>
            <input type="text" class="form-control" placeholder="Search" name="SearchString" id="SearchString">
        </div>
    }}
</div>
查找值的jquery


您必须在锚定标记上写入单击事件,因为锚定标记的内部如下所示:

<ul class="dropdown-menu">
 <li>
  <a>SearchText</a>
 </li>
</ul>


$(".dropdown-menu li a").click(function () {


            $("input[name='SearchBy']").val($(this).html());
        });

我相信您希望通过获取所选项目的值来设置SearchBy值:

<script>
    $(".dropdown-menu").click(function () {
        $("input[name='SearchBy']").val($(this).val());
    });
</script>

如果要获取标记之间的文本值,请尝试使用.text而不是html

首先选择ul而不是其li中的a,然后使用jquery文本函数:

<script>
$('.dropdown-menu li a').click(function (e) {
    e.preventDefault();
    $('input[name="SearchBy"]').val($(this).text());
});
</script>

尝试将javascript分成两行,第一行var值=$this.html;因此,您可以更轻松地检查实际传入的内容。valI已将函数更改为$this.val,但它仍然不会将SearchBy的vle发送到controller@Dolaps尝试更新的解决方案,这肯定会对您有用
<script>
$('.dropdown-menu li a').click(function (e) {
    e.preventDefault();
    $('input[name="SearchBy"]').val($(this).text());
});
</script>