Как отобразить данные в текстовом поле с помощью ajax в MVC? - PullRequest
1 голос
/ 04 июля 2019

У меня есть функция JavaScript

function getbyID(Id) {
$.ajax({
    url: "/Home/GetbyID/" + Id,
    type: "GET",
    contentType: "application/json;charset=UTF-8",
    dataType: "json",

    success: function (result) {

        $("#UserId").val(result.UserId);
        $('#FirstName').val(result.FirstName);
        $('#MiddleName').val(result.MiddleName);
        $('#LastName').val(result.LastName);
         $('#ZipCode').val(result.ZipCode);
        $('#myModal2').show();
        $('#btnUpdate').show();
        $('#btnSubmit').hide();  

}

На виду

<div class="form-group">

<div class="control-label col-md-2">
    <b>First Name</b>
</div>

<div class="col-md-10">
    @Html.TextBoxFor(model => model.FirstName, new { @class = "form-control", id = "FirstName", @placeholder = "First Name" })
    @Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger", @id = "FirstName" })
</div>
<div class="control-label col-md-2">
    <b>Middle Name</b>
</div>
<div class="col-md-10">
    @Html.TextBoxFor(model => model.MiddleName, new { @class = "form-control", @id = "MiddleName", @placeholder = "Middle Name" })
</div>
<div class="control-label col-md-2">
    <b>Last Name</b>
</div>
<div class="col-md-10">
    @Html.TextBoxFor(model => model.LastName, new { @class = "form-control", @id = "LastName", @placeholder = "Last Name" })
    @Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
</div>
</div>    
<div class="control-label col-md-2">
    <b>Zip Code</b>
 </div>
  <div class="col-md-10">
    @Html.TextBoxFor(model => model.ZipCode, new { @class = "form- 
    control", @id = "ZipCode" })
    @Html.ValidationMessageFor(model => model.ZipCode, "", new { @class = "text-danger" })'

В контроллере

  public JsonResult GetbyID(int ID)
    {          

        var q = (from a in obj.Addresses
                 join u in obj.Users on a.UserId equals u.UserId
                 where a.UserId == ID
                 //select a);
                 select new {u.FirstName, u.MiddleName, u.LastName,  a.ZipCode }).ToList();

        return Json(q, JsonRequestBehavior.AllowGet);
    }

Здесь я хочу отображать значения в текстовых полях. Функция работает успешно и отображает результат в функции (результат), когда я отлаживаю код, но не отображаю в текстовое окно. Как решить эту проблему .?

1 Ответ

0 голосов
/ 06 июля 2019

Пожалуйста, попробуйте этот код. Я обновил код

У меня есть функция javascript

    <script>
function getbyID(Id) 
{
    try
    {
        $.ajax({
        url: "/Home/GetbyID/" + Id,
        type: "GET",
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        success: function (result) {

        $(".jsUserId").val(result.UserId);
        $('.jsFirstName').val(result.FirstName);
        $('.jsMiddleName').val(result.MiddleName);
        $('.jsLastName').val(result.LastName);
        $('.jsZipCode').val(result.ZipCode);       
        }
        });
    }
    catch (e) 
    {
        console.log("Error : getbyID : " + e.message);
    }

}
</script>

В просмотре изменений я сделал

    <div class="form-group">

    <div class="control-label col-md-2">
        <b>First Name</b>
    </div>

    <div class="col-md-10">
        @Html.HiddenFor(model => model.UserId, new { @class = "form-control jsUserId", id = "UserId"}) 
        @Html.TextBoxFor(model => model.FirstName, new { @class = "form-control jsFirstName", id = "FirstName", @placeholder = "First Name" }) 
        @Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger", @id = "FirstName" })
    </div>
    <div class="control-label col-md-2">
        <b>Middle Name</b>
    </div>
    <div class="col-md-10">
        @Html.TextBoxFor(model => model.MiddleName, new { @class = "form-control jsMiddleName", @id = "MiddleName", @placeholder = "Middle Name" })
    </div>
    <div class="control-label col-md-2">
        <b>Last Name</b>
    </div>
    <div class="col-md-10">
        @Html.TextBoxFor(model => model.LastName, new { @class = "form-control jsLastName", @id = "LastName", @placeholder = "Last Name" }) 
        @Html.ValidationMessageFor(model => model.LastName, "", new { @class = "text-danger" })
    </div>
</div>
<div class="control-label col-md-2">
    <b>Zip Code</b>
</div>
<div class="col-md-10">
    @Html.TextBoxFor(model => model.ZipCode, new { @class = "form- control jsZipCode" , @id = "ZipCode" })
     @Html.ValidationMessageFor(model => model.ZipCode, "", new { @class = "text-danger" })
</div>

В контроллере

public JsonResult GetbyID(int ID)
    {          

        var q = (from a in obj.Addresses
                 join u in obj.Users on a.UserId equals u.UserId
                 where a.UserId == ID
                 //select a);
                 select new {u.FirstName, u.MiddleName, u.LastName,  a.ZipCode }).FirstOrDefault();

        return Json(q, JsonRequestBehavior.AllowGet);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...