Javascript 是否使用数据库表中的数据填写表单文本框(如果用户存在)?
我昨天问过这个问题。一位专家建议我使用Ajax 请我需要在使用MVC5创建表单时在分机号旁边创建一个按钮链接。当用户输入分机号码并单击其旁边的按钮时,分机号码将传递给JasonResult以在表中搜索。如果存在扩展名,则创建视图中的文本框表单将显示他的姓名、位置和徽章 这是我的控制器Javascript 是否使用数据库表中的数据填写表单文本框(如果用户存在)?,javascript,jquery,json,model-view-controller,asp.net-mvc-5,Javascript,Jquery,Json,Model View Controller,Asp.net Mvc 5,我昨天问过这个问题。一位专家建议我使用Ajax 请我需要在使用MVC5创建表单时在分机号旁边创建一个按钮链接。当用户输入分机号码并单击其旁边的按钮时,分机号码将传递给JasonResult以在表中搜索。如果存在扩展名,则创建视图中的文本框表单将显示他的姓名、位置和徽章 这是我的控制器 public JsonResult EmployeeInfo(string extension, Ticket ticket) { var result = from r in db.C
public JsonResult EmployeeInfo(string extension, Ticket ticket)
{
var result = from r in db.CUSTOMERS
where r.BADGE_NUMBER == extension
select new { r.BADGE_NUMBER, r.LOCATION, r.NAME };
return Json(result, JsonRequestBehavior.AllowGet);
}
下面是查看中的代码
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "text-danger" })
<input type="submit" id="GetInfo" value="search"/>
<script type="text/jscript">
$('#GetInfo').click(function () {
$.getJSON('/Tickets/EmployeeInfo/' + $('#Phone').val(), function (data) {
$('#rData').html(items);
});
})
</script>
</div>
</div>
有人能帮我吗?
谢谢,听起来您使用的是MVC控制器,它会返回一个视图,因此无法正常工作。我建议您添加一个e Web Api控制器,其路由如下:当然,未经测试:
[Route("Tickets/EmployeeInfo/{extension}")]
public Task<IHttpActionResult> EmployeeInfo(string extension)
{
var result = from r in db.CUSTOMERS
where r.BADGE_NUMBER == extension
select new { r.BADGE_NUMBER, r.LOCATION, r.NAME };
return result;
}
此web api路由将以JSON的形式提供结果。您可以像现在使用javascript一样调用此路由。
您还应将按钮类型更改为按钮:
<input type="submit" id="GetInfo" value="search"/>
到
返回的json不是视图,因此不能使用$'rData'.htmlitems;-您需要更新现有元素的值-例如$someElement.valdata.LOCATION;-但不清楚要更新什么元素。并从方法中删除Ticket-Ticket参数。并将type=submit更改为type=button,以便不提交form@StephenMuecke谢谢,我想返回相同的创建表单,并在文本框中填写姓名、位置和徽章?您能告诉我如何在$someElement.valdata.LOCATION;中写入它吗;?如果要返回相同的表单,则需要返回部分视图,而不是json,因此不清楚您真正想要的是什么。我不知道您想在视图中的何处显示返回的值。只需在视图中添加一个,并使用$'location'.textdata.location;MVC控制器可以像OP一样返回json。
<input type="button" id="GetInfo" value="search"/>