使用 ajax 调用填充文本字段

Posted

技术标签:

【中文标题】使用 ajax 调用填充文本字段【英文标题】:Populate text fields with ajax call 【发布时间】:2021-09-19 22:48:41 【问题描述】:

我有一个用用户信息填写表单的 MVC 项目。记录后,它会获得一个与表单中所有详细信息相关联的唯一 ID。

然后,如果需要,我有一个页面可以编辑表单,它将 id 放入 url 并将 Id 分配给 Viewbag.Id。我正在尝试在 ajax 调用中使用 Id,然后从 web api 中提取其余信息,并使用已填写的详细信息填充字段。我的问题是我仍在学习 ajax,而不是 100% 地学习如何做到这一点。以下是我认为相关的内容。

我的控制器

        [Route("EditUser/id")]
        [CustomAuthorize(Roles = UserRole.Any)]
        public ActionResult EditUserDetails(int id)
        
            var userDetails = _slg_Entity.NewUser.FirstOrDefault(z => z.Id == id);

            ViewBag.Id = userDetails.Id;         

            return View($"~/Views/Request/EditUser.cshtml");
        

我正在尝试执行以下操作:

         $.ajax(
             type: "GET",
             url: "@Url.Action("UserDetails", "Api/Request")",
             data: 
                 Id: "@ViewBag.Id" <--- ID passed to the api controller
             
         ).done(function (data) 
             $(".firstname").val(variable); <--- assign the data from api to field value
         ).fail(function (error) 
             displayError(error);
         );

API 控制器:

        [Route("UserDetails")]
        [HttpGet]
        [CustomApiAuthorize(Roles = UserRole.HR)]
        public async Task<IHttpActionResult> GetUserDetails([FromUri] NewUserDetails existingUser)
        
            var details = await _slg_Entity.NewUser.FirstOrDefaultAsync(z => z.Id == existingUser.Id);

            existingUser.FirstName = details.FirstName;

            return Ok(details);
        

不确定我是在附近还是在球场,所以欢迎任何建议! 谢谢。

【问题讨论】:

是您问题中的代码不起作用的问题,还是关于如何完成此处未显示的内容的问题? BR @RoarS,更重要的是我是否走在正确的道路上。我现在没有得到任何东西,所以代码不起作用。基本上是在寻找一些有助于解决此问题的指针或文档。 【参考方案1】:

所以数据顺利通过。我才发现我叫错了。

我没有传递我在控制器中创建的变量,而是忘记包含数据前缀。

$.ajax(
    type: "GET",
    url: "@Url.Action("UserDetails", "Api/Request")",
    data: 
       Id: "@ViewBag.Id"
    
).done(function (data) 
   $(".firstname").val(data.variable); 
).fail(function (error) 
   displayError(error);
);

【讨论】:

以上是关于使用 ajax 调用填充文本字段的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ajax 填充 Wicket 表

参数未从 Ajax 调用填充(尝试了一切)

在 JQuery 自动完成填充输入字段后调用新函数

发生验证错误后,如何使用 PrimeFaces AJAX 填充文本字段?

如何将文本字段数据从 Struts 2 中的 ajax 操作传递到原始调用 .jsp?

Ajax 调用以通过单击按钮返回填充表单字段 django