在View ASP.NET中显示多个表数据

时间:2018-06-26 09:28:52

标签: c# asp.net asp.net-mvc entity-framework

我有两个通过ID连接的表。一张表是针对专业医疗服务提供者的,第二张是针对医疗服务提供者的列表。我想在View中显示SpecialityName

ListOfSpeciality

Table of Medical Providers

View

到目前为止,我已经创建了一个控制器

[HttpGet]
        public virtual JsonResult MedicalInput(int id)
        {

            var medProvidersInput = db.Contacts.Where(s => s.Id == id && s.ContactCategory.Name == "Facility").Select(a => new
            {
                Id = a.Id,
                Firstname = a.Firstname,
                Address1 = a.Address1,
                TypeId = a.TypeId,
                City = a.City,
                State = a.State,
                Zip = a.Zip,
                Mobile = a.Mobile,

            });

            //ViewData["medProvidersInput"] = medProvidersInput;
            return Json(medProvidersInput, JsonRequestBehavior.AllowGet);
        }

我在脚本中创建的代码的第二部分,用于获取这些元素以在TextView中查看和显示(图3)

$(document).on('click', '.sortList', function () {

        var selectLat = $(this).closest("tr").attr('data-lat');
        var selectLong = $(this).closest("tr").attr('data-long');



        $('.sortList').each(function () {
            $(this).closest("tr").removeClass('success');
        });


        $(this).closest("tr").addClass('success');


        var id = $(this).attr('data-id');
        $.getJSON("/NfDocuments/MedicalInput", { id: id },
           function (data) {

              $('#medInput').empty();

               $.each(data, function () {
                   // $("#medInput").append("'" + this.Id + "'");
                   //console.log(this.Id);
                   var medInput = document.getElementById("medInput");
                   medInput.value = this.Firstname + ' - '
                                  + this.Zip + ' '
                                  + this.Address1 + ','
                                  //+ this.TypeId + ','
                                  + this.City + ','
                                  + this.State + ' - '
                                  + this.Mobile;
               });

           });

所以我想从表中选择“名称”,并在“地址”字段后的TextView中显示。 所以我的问题是:是否可以将ID转换为String,以便在textview中获得专业名称? 谢谢

1 个答案:

答案 0 :(得分:1)

由于您使用的是Entity Framework,并且表之间已经存在关系,因此tou可以非常轻松地将字段包含在.Select()语句中:

var medProvidersInput = db.Contacts.Where(s => s.Id == id && s.ContactCategory.Name == "Facility").Select(a => new
            {
                Id = a.Id,
                Firstname = a.Firstname,
                Address1 = a.Address1,
                TypeId = a.TypeId,
                City = a.City,
                State = a.State,
                Zip = a.Zip,
                Mobile = a.Mobile,
                SpecialtyName = a.ContactType.Name //make a field called SpecialtyName using the contact type name field
            });

然后它将自动包含在JSON中,并且您可以在JavaScript代码中使用它并根据需要显示它。