将额外参数传递给我的data_autocomplete_source

时间:2014-05-09 08:40:14

标签: jquery asp.net-mvc asp.net-mvc-4 razor

我有以下要求: -

1.具有data_autocomplete_source的文本框,如下所示: -

  

@ Html.TextBoxFor(model => model.Technology.Search,new {   data_autocomplete_source = Url.Action("自动完成"," Switch")})

2.两个单选按钮,用于选择执行自动填充搜索的关键字,按名称或编号如下: -

<input type="radio" name="searchType" value="number" /> number
<input type="radio" name="searchType" value="name"/>name

所以我的问题是如何通过单选按钮选择以及自动完成搜索词?

我的自动完成脚本如下所示: -

$("input[data-autocomplete-source]").each(function () {
        var target = $(this);
        target.autocomplete({ source: target.attr("data-autocomplete-source"), minLength: 2, delay: 2000 });

    });

修改 我尝试了以下方法: -

@Html.TextBoxFor(model => model.Technology.Search, new { data_autocomplete_source = Url.Action("AutoComplete", "Switch", new { SearchBy = Model.SearchBy}) })
@Html.RadioButtonFor(a=>a.SearchBy, "number", new { id = "number" })number
@Html.RadioButtonFor(a=>a.SearchBy, "Name", new { id = "name" })Name

但是SearchBy值总是为空?

由于

1 个答案:

答案 0 :(得分:1)

您需要传递一个不是来自模型的值,因为它是null的原因。我建议你在JQuery函数中传递参数。 然后它可以使用客户端的参数调用您的Action。

 $("#myTextBoxSearch").each(function () {
    var searchByVal = $('input[name=SearchBy]:checked').val();  
    var target = $(this);
    target.autocomplete({ source:@Url.Action("AutoComplete", "Switch", new { SearchBy = searchByVal}) , minLength: 2, delay: 2000 });

 });

如果您有观点:

@Html.TextBoxFor(model => model.Technology.Search, new { id="myTextBoxSearch" })
@Html.RadioButtonFor(a=>a.SearchBy, "number", new { id = "number" })number
@Html.RadioButtonFor(a=>a.SearchBy, "Name", new { id = "name" })Name

请注意,您可以使用所需变量的名称。我只是告诉你一个方法。 我希望它会对你有所帮助。