Javascript 使用MVC在输入字段中自动建议
实际上,我希望在我的输入字段中实现自动建议。所以我的控制器中有一些结果集。我附加在这里的代码 控制器Javascript 使用MVC在输入字段中自动建议,javascript,c#,asp.net-mvc,asp.net-mvc-4,c#-4.0,Javascript,C#,Asp.net Mvc,Asp.net Mvc 4,C# 4.0,实际上,我希望在我的输入字段中实现自动建议。所以我的控制器中有一些结果集。我附加在这里的代码 控制器 public ActionResult Index() { string ProfileUrl = "http://localhost:64413/api/CorporateName/CorporateDetails?pid=" + 5999 + ""; System.Net.Http.HttpClient DashBoardclient = ne
public ActionResult Index()
{
string ProfileUrl = "http://localhost:64413/api/CorporateName/CorporateDetails?pid=" + 5999 + "";
System.Net.Http.HttpClient DashBoardclient = new System.Net.Http.HttpClient();
DashBoardclient.BaseAddress = new Uri(ProfileUrl);
DashBoardclient.DefaultRequestHeaders.Accept.Clear();
DashBoardclient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage dashboardresponseMessage = DashBoardclient.GetAsync(ProfileUrl).Result;
var DashboardData = dashboardresponseMessage.Content.ReadAsStringAsync().Result;
JavaScriptSerializer jss = new JavaScriptSerializer();
List<Corporate> dbresult = (List<Corporate>)jss.Deserialize(DashboardData, typeof(List<Corporate>));
string GroupID = null;
string CompanyName = null;
foreach (Corporate dbresults in dbresult)
{
GroupID = dbresults.GroupID;
CompanyName = dbresults.GroupName;
}
return View("Index", dbresult);
}
public ActionResult Index()
{
字符串配置文件URL=”http://localhost:64413/api/CorporateName/CorporateDetails?pid=" + 5999 + "";
System.Net.Http.HttpClient DashBoardclient=新系统.Net.Http.HttpClient();
DashBoardclient.BaseAddress=新Uri(ProfileUrl);
DashBoardclient.DefaultRequestHeaders.Accept.Clear();
DashBoardclient.DefaultRequestHeaders.Accept.Add(新系统.Net.Http.Headers.MediaTypeWithQualityHeaderValue(“应用程序/json”));
HttpResponseMessageDashboardResponseMessage=DashBoardclient.GetAsync(ProfileUrl).Result;
var DashboardData=dashboardresponseMessage.Content.ReadAsStringAsync().Result;
JavaScriptSerializer jss=新的JavaScriptSerializer();
List dbresult=(List)jss.Deserialize(仪表板数据,typeof(List));
字符串GroupID=null;
字符串CompanyName=null;
foreach(企业数据库结果在数据库结果中)
{
GroupID=dbresults.GroupID;
CompanyName=dbresults.GroupName;
}
返回视图(“索引”,dbresult);
}
因此,这里我调用API并将结果存储在dbresult中,dbresult有两个参数(GroupId,GroupName)公司是模型
查看页面
@model ClinicSystemMVC.Models.Corporate
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.GroupName)
<div class="col-sm-9">
@Html.EditorFor(model => model.GroupName, new { @class = "form-control" })
</div>
</div>
}
@model-ClinicSystemMVC.Models.Corporate
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@LabelFor(model=>model.GroupName)
@EditorFor(model=>model.GroupName,新的{@class=“form control”})
}
我刚才只提到了一个div,我希望它能自动推荐
Javascript
<script type="text/javascript">
$(document).ready(function () {
$("#GroupName").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/Index",
type: "GET",
dataType: "json",
data: { Prefix: request.term },
success: function (data) {
response($.map(data, function (item) {
return { value: item.GroupName};
}))
}
})
},
messages: {
noResults: "", results: ""
}
});
})
$(文档).ready(函数(){
$(“#组名”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“/Home/Index”,
键入:“获取”,
数据类型:“json”,
数据:{前缀:request.term},
成功:函数(数据){
响应($.map)(数据,函数(项){
返回{value:item.GroupName};
}))
}
})
},
消息:{
否结果:“”,结果:“”
}
});
})
有了这个附加的代码,我无法实现自动建议。输入字段没有列出任何内容。那么,我如何更改代码以在输入字段中实现自动建议呢
谢谢你的帮助。提前感谢 您的代码甚至无法编译—您将
列表
传递到一个需要单个公司
的视图。您试图对控制器中的foreach
循环做什么?您在哪里声明了GroupID
和CompanyName
?(而且您甚至不用它们)与自动完成
相关联的ajax调用需要调用一个返回JsonResult
的方法实际上我试图创建另一个变量来存储foreach的结果。但是当我累的时候,它只返回循环的最后一个值。foreach循环后的代码如下所示:var Faclities=new professionals();{Faclities.GroupID=GroupID;Faclities.GroupName=GroupName;}我假设您显示的视图不是Index.cshtml
。您Index()
方法需要返回Json(DashboardData,JsonRequestBehavior.AllowGet)
(并删除从JavaScriptSerializer jss=…
开始的所有代码,它们必须是两个独立的方法!