选中复选框后,将数组值从控制器传递给Json查看



我在视图中有一个复选框,我希望它在选中时从控制器返回数据,它显示在视图中并显示在输入框中?

<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);
}

您还应该给您的输入适当的names-它们都是共享名称,这会导致定期提交表单的问题,例如:<input type="text" id="mobile" class="js-input-field" name="mobile" />

最新更新