我昨天问了这个问题。一位专家建议我使用Ajax。
在使用MVC5创建表单时,我需要在分机号旁边创建一个按钮链接。当用户输入分机号码,然后单击旁边的按钮,分机号码将传递给JasonResult以在表格中搜索。如果扩展名存在,则创建视图中的文本框表单将显示其名称,位置和徽章。
这是我的控制器。
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>
谁能帮帮我?
谢谢,
答案 0 :(得分:1)
听起来你正在使用MVC控制器,它返回一个View,所以这不起作用。我建议你添加一个像这样的路线的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;
}
此网络API路由将以JSON格式提供您的结果。您可以像使用javascript一样调用此路由。 您还应该将按钮类型更改为按钮:
<input type="submit" id="GetInfo" value="search"/>
要
<input type="button" id="GetInfo" value="search"/>