автозаполнение с двумя аргументами - PullRequest
1 голос
/ 13 декабря 2011

Я хочу отправить два аргумента в метод AutoComplete

public ActionResult AutoComplete(String term,String term2)
        {
            var d = db.Cities
                .OrderBy(r => r.City1)
                .Where(r => r.City1.Contains(term))
                .Where(r => r.Country.Name.Equals(term2))
                .Select(r => new { label = r.City1 });
            return Json(d, JsonRequestBehavior.AllowGet);
        }

Jquery функции равно

 $(":input[data-autocomplete]").each(function () {
        $(this).autocomplete({ source: $(this).attr("data-autocomplete") });
    });

первое значение того же поля input, где в качестве следующего значения указано предыдущее поле input всегда

код Razor и HTML как

<div class="editor-label">
            @Html.LabelFor(model => model.Sender.S_Country)
        </div>
        <div class="editor-field">
            <input data-autocomplete="@Url.Action("AutoCountry", "Coureir")" class="text-box single-line" data-val="true" data-val-regex="Country Names Contains only space and Characters - or ." data-val-regex-pattern="^([a-zA-Z]+[-.\s]?)*$" data-val-required="The Country field is required." id="Sender_S_Country" name="Sender.S_Country" type="text" value="" />            
            @Html.ValidationMessageFor(model => model.Sender.S_Country)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Sender.S_City)
        </div>
        <div class="editor-field">
            <input data-autocomplete="@Url.Action("AutoComplete", "Coureir")" class="text-box single-line" id="Sender_S_City" name="Sender.S_City" type="text" value="" />
            @Html.ValidationMessageFor(model => model.Sender.S_City)
        </div>

1 Ответ

2 голосов
/ 13 декабря 2011

Если я понимаю ваш вопрос, тогда я думаю, что вам нужно изменить свой @ Url.Action так:

@Url.Action("AutoComplete", "Coureir", new { term = model.Sender.S_City, term2 = model.Sender.S_Country }));
...