Asp.net mvc 3 url.action用于自动完成
在得到回复的帮助后,我将代码更改为Asp.net mvc 3 url.action用于自动完成,asp.net-mvc-3,Asp.net Mvc 3,在得到回复的帮助后,我将代码更改为 @Html.TextBoxFor(per => per.Hospital, new { style = "width:220px", @maxlength = "50", data_autocomplete = Url.Action("HospitalList", "Person") }) 我的jquery是 $(document).ready(function () { $('input[data_autocomplete]'
@Html.TextBoxFor(per => per.Hospital, new { style = "width:220px", @maxlength = "50", data_autocomplete = Url.Action("HospitalList", "Person") })
我的jquery是
$(document).ready(function () {
$('input[data_autocomplete]').each(function () {
var url = $(this).data('autocomplete');
$(this).autocomplete({
source: function (request, response) {
$.getJSON(url, {
term: request.term
}, response);
}
});
});
});
并创建了一个新的操作结果
public ActionResult HospitalList(string term)
{
List<string> result = new List<string>();
result.Add("Hospital 1");
result.Add("NYUMC");
result.Add("Christ");
result.Add("Bellevue");
result.Add("NewYork-Presbyterian");
result.Add("North Central Bronx Hospital");
return Json(result , JsonRequestBehavior.AllowGet);
}
现在我要去哪里。我看到的只是一个文本框,没有自动完成的行为。我是否应该包括任何jquery库以使其工作您还没有显示您正在使用的自动完成插件。如果是,您可以从控制器操作中以JSON的形式返回筛选结果:
[HttpGet]
public ActionResult PersonSearch(string term)
{
// The term parameter will contain the value entered by the user in the textbox.
// here you could use it and query your database in order to filter the results.
string[] result = new string[]
{
"filtered value 1",
"filtered value 2",
"filtered value 3",
"filtered value 4",
};
return Json(result, JsonRequestBehavior.AllowGet);
}
最后,您将附加插件:
$(function() {
$('input[data-autocomplete]').each(function() {
var url = $(this).data('autocomplete');
$(this).autocomplete({
source: function(request, response) {
$.getJSON(url, {
term: request.term
}, response);
}
});
});
});
请注意控制器操作如何使用term参数,并应以JSON的形式返回字符串列表。您使用什么来自动完成?我没有使用任何东西,我只是想让textboxfor自动完成。我对MVC和jquery非常陌生。上面列出了我所做的一切。HTML中没有自动完成功能。如果你想使用一个,你必须使用一个插件。jQueryUIAutoComplete就是这样一个插件。您需要在视图中引用jquery.js和jquery-ui.js。您还应该阅读一些文档来熟悉一些基本的javascript。如果你看到我的控制器在上面,我现在返回一个视图,根据你的解释,我必须返回jason,我如何才能一起返回视图和jason。我没有使用任何自动完成插件。你不能同时返回JSON和视图。这没有道理。为了使用jQuery UI autocomplete插件,请确保首先在页面中包含jQuery.js,然后是jQuery-UI.js脚本。最后,您可以在自定义脚本中使用.autocomplete。