我在视图中有一个复选框,我希望它在选中时从控制器返回数据,它显示在视图中并显示在输入框中?
<input class="js-recipient-is-me" type="checkbox"/>
Javascript:
$('.js-recipient-is-me').change(function () {
if (this.checked) {
$('.js-input-field').addClass('disabled');
$.ajax({
url: '/Cart/GetUserInfo',
});
} else {
$('.js-input-field').removeClass('disabled');
}
});
Html输入:
<input type="text" id="mobile" class="js-input-field" name="name" />
<input type="text" id="name" class="js-input-field" name="name" />
<input type="text" id="family" class="js-input-field" name="name" />
控制器:
public async Task<JsonResult> GetUserInfo()
{
CurrentUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var userinfo = await _scope.GetUserInfo(Guid.Parse(CurrentUserId));
return Json(0);
}
userinfo
是一个字符串数组,有三个值:["Mobile", "name", "family"]
我想设置userinfo
值输入。。。
它是如何完成的?
您需要添加一个回调来处理从服务器接收的数据。您可以在ajax
请求之后使用done()
来执行此操作。
$.ajax({
type: "GET",
url: '/Cart/GetUserInfo'
})
.done( function(data) {
$('#mobile').val(data[0]);
$('#name').val(data[1]);
$('#family').val(data[2]);
});
您还需要将数据从控制器传递到视图。目前,您似乎总是返回0
。返回userinfo
对象,如下所示:return Json(userinfo);
public async Task<JsonResult> GetUserInfo()
{
CurrentUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var userinfo = await _scope.GetUserInfo(Guid.Parse(CurrentUserId));
return Json(userinfo);
}
您还应该给您的输入适当的name
s-它们都是共享名称,这会导致定期提交表单的问题,例如:<input type="text" id="mobile" class="js-input-field" name="mobile" />