我正在修改预先存在的应用程序。我正在尝试添加jquery自动完成功能。我有它工作并调用控制器,但问题是输入字段中的name属性是“someClass.someMethod”因此我不能把它放在这样的控制器参数中,但仍然想要满足asp.net的模型绑定规则,我该怎么办?
控制器:
datareader
查看:
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})'
});
});
答案 0 :(得分:0)
我能够通过抓取输入字段的值并在每个函数调用上传递它(或每次用户输入字符时)来使其工作。
现在,当用户从自动完成列表中选择项目并选择提交时,框架形式的幕后模型绑定仍然可以像最初实现的那样工作。
以下是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技能不是很强,我无法立刻解决这个问题。希望这有助于某人。