Hi,
I have been looking for a solution to solve this problem but until now I have not found a solution.
What I want is when the user selects a certain ID then the information will be displayed from the database to the view using AJAX I am using entity framework in this case.
please help.
Here is the error that appears
An unhandled exception has occurred while executing the request.
System.NotSupportedException: Serialization and deserialization of 'System.Type' instances are not supported and should be avoided since they can lead to security issues. Path: $.MoveNextAction.Method.ReturnParameter.ParameterType.
ReservasiKamarController.cs
// GET: Reservasi
[HttpGet]
public IActionResult Get_DataTamuByID(int? idTamu)
{
var tblTamu = _context.TblTamus.FirstOrDefaultAsync(x=>x.IdTamu==idTamu);
return Json(tblTamu);
}
TblTamu.cs
public partial class TblTamu
{
[Key]
[Display(Name = "ID Tamu")]
[Required]
public int IdTamu { get; set; }
[Display(Name = "Nama Tamu")]
[Required]
public string NamaTamu { get; set; }
[Display(Name = "Alamat")]
[Required]
public string Alamat { get; set; }
}
Startup.cs
services.AddControllersWithViews().AddJsonOptions(jsonOptions =>
{
jsonOptions.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve;
});
view.cshtml
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<script src="~/plugins/jquery/jquery.min.js" type="text/javascript" lang="javascript"></script>
<script type="text/javascript" lang="javascript">
$(document).ready(function () {
$('#btnLoadDataTamu').on("click", function () {
$.ajax({
url: "@Url.Action("Get_DataTamuByID", "ReservasiKamar")",
type: "GET",
contentType: "application/json;charset=UTF-8",
dataType: "json",
data: { idTamu: $('#IdTamu').val() },
success: function (data) {
if (data !="") {
$('#NamaTamu').val(data.NamaTamu);
$('#Alamat').val(data.Alamat);
$('#NoHp').val(data.NoTelpon);
}
else {
window.alert(' error : ' + data.message);
}
}
});
});
return false;
});
</script>
<div class="card-body">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label asp-for="IdTamu" class="control-label"></label>
<div class="input-group-append">
<input asp-for="IdTamu" id="IdTamu" class="form-control">
<button type="button" id="btnLoadDataTamu" class="btn btn-warning">Cari</button>
</div>
<span asp-validation-for="IdTamu" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label asp-for="NamaTamu" class="control-label"></label>
<input asp-for="NamaTamu" id="NamaTamu" class="form-control" readonly="readonly" />
<span asp-validation-for="NamaTamu" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label asp-for="NoHp" class="control-label"></label>
<input asp-for="NoHp" id="NoHp" class="form-control" readonly="readonly" />
<span asp-validation-for="NoHp" class="text-danger"></span>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label asp-for="Alamat" class="control-label"></label>
<textarea asp-for="Alamat" id="Alamat" class="form-control" rows="4" readonly="readonly"></textarea>
<span asp-validation-for="Alamat" class="text-danger"></span>
</div>
</div>
</div>
<!-- /.card-body -->
</div>