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>