asp.net MVC 自动完成 Html.TextBoxFor
asp.net MVC autocomplete with Html.TextBoxFor
我正在修改一个已有的应用程序。我正在尝试添加 jquery 自动完成功能。我让它工作并调用控制器但问题是输入字段中的名称属性是 "someClass.someMethod" 所以因为我不能像这样将它放在控制器参数中,但仍然想要满足 asp.net的模型绑定规则,我该怎么办?
控制器:
public JsonResult GetPs(string pN, PSModel pS)
{
List<string> pNs = null;
pNs= pS.PEntryBL.BusinessLayerPS.PS
.Where(x => x.Text.StartsWith(pN)).Select(y => y.Text).ToList();
return Json(pNs, JsonRequestBehavior.AllowGet);
}
查看:
$(function () {
$("#autoCompletePNBox").autocomplete({
source: '@Url.Action("GetPs", "PS", new {pS = @Model})'
});
});
形式:
@Html.Label("Scan PN: ", new { @class = "DFont"})
@Html.TextBoxFor(r => r.PEntryBL.PS, new { @class = "pageFont", id = "autoCompletePNBox" })
使用This Post
我能够通过获取输入字段的值并在每次函数调用(或每次用户输入字符时)传递它来使其工作。
现在,当用户从自动完成列表中选择项目并选择提交时,幕后的框架表单模型绑定仍将按最初实现的方式工作。
这里是 jquery 代码更改:
<script type="text/javascript">
$(function () {
var src = '@Url.Action("GetPs", "PS", new {pS = @Model})'
$("#autoCompletePNBox").autocomplete({
source: function (request, response) {
$.ajax({
url: src,
dataType: "json",
data: {
pN: $("#autoCompletePNBox").val()
},
success: function (data) {
response(data);
}
});
}
});
});
我无法立即解决这个问题,因为我的 Jquery 技能不是很强。希望这对某人有帮助。
我正在修改一个已有的应用程序。我正在尝试添加 jquery 自动完成功能。我让它工作并调用控制器但问题是输入字段中的名称属性是 "someClass.someMethod" 所以因为我不能像这样将它放在控制器参数中,但仍然想要满足 asp.net的模型绑定规则,我该怎么办?
控制器:
public JsonResult GetPs(string pN, PSModel pS)
{
List<string> pNs = null;
pNs= pS.PEntryBL.BusinessLayerPS.PS
.Where(x => x.Text.StartsWith(pN)).Select(y => y.Text).ToList();
return Json(pNs, JsonRequestBehavior.AllowGet);
}
查看:
$(function () {
$("#autoCompletePNBox").autocomplete({
source: '@Url.Action("GetPs", "PS", new {pS = @Model})'
});
});
形式:
@Html.Label("Scan PN: ", new { @class = "DFont"})
@Html.TextBoxFor(r => r.PEntryBL.PS, new { @class = "pageFont", id = "autoCompletePNBox" })
使用This Post
我能够通过获取输入字段的值并在每次函数调用(或每次用户输入字符时)传递它来使其工作。
现在,当用户从自动完成列表中选择项目并选择提交时,幕后的框架表单模型绑定仍将按最初实现的方式工作。
这里是 jquery 代码更改:
<script type="text/javascript">
$(function () {
var src = '@Url.Action("GetPs", "PS", new {pS = @Model})'
$("#autoCompletePNBox").autocomplete({
source: function (request, response) {
$.ajax({
url: src,
dataType: "json",
data: {
pN: $("#autoCompletePNBox").val()
},
success: function (data) {
response(data);
}
});
}
});
});
我无法立即解决这个问题,因为我的 Jquery 技能不是很强。希望这对某人有帮助。