如果用户存在,则使用数据库表中的数据填写表单文本框?

时间:2016-03-01 09:42:00

标签: 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.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>
谁能帮帮我? 谢谢,

1 个答案:

答案 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"/>