Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否使用数据库表中的数据填写表单文本框(如果用户存在)?_Javascript_Jquery_Json_Model View Controller_Asp.net Mvc 5 - Fatal编程技术网

Javascript 是否使用数据库表中的数据填写表单文本框(如果用户存在)?

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

我昨天问过这个问题。一位专家建议我使用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>
有人能帮我吗?
谢谢,

听起来您使用的是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"/>