我想向 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
字段的第一个值,其中下一个valud是前一个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>
答案 0 :(得分:2)
如果我理解您的问题,那么我认为您需要将@ Url.Action修改为:
@Url.Action("AutoComplete", "Coureir", new { term = model.Sender.S_City, term2 = model.Sender.S_Country }));