使用 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 调用填充文本字段的主要内容,如果未能解决你的问题,请参考以下文章
发生验证错误后,如何使用 PrimeFaces AJAX 填充文本字段?