У меня есть две таблицы, которые связаны по ID. Одна таблица предназначена для специализированного поставщика медицинских услуг, вторая - это список поставщиков медицинских услуг. Я хочу отображать SpecialityName в представлении
Пока я создаю контроллер
[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.info(this.Id);
var medInput = document.getElementById("medInput");
medInput.value = this.Firstname + ' - '
+ this.Zip + ' '
+ this.Address1 + ','
//+ this.TypeId + ','
+ this.City + ','
+ this.State + ' - '
+ this.Mobile;
});
});
Итак, я хочу выбрать имя из таблицы и отобразить в TextView после поля адреса. Итак, мой вопрос: можно ли преобразовать идентификатор в строку, чтобы я мог получить название специальности в текстовом представлении? Спасибо
В любом случае ... «Я хочу отобразить SpecialityName в представлении» ... в какой это таблице базы данных? Если есть связь между этой таблицей и таблицей контактов, поскольку вы используете EF, вы должны просто иметь возможность включить это поле в свой вызов .Select (), например. Mobile = a.Mobile, SpecialtyName = a.SomeTable.Name или что-то еще. Затем он будет в вашем JSON, а затем вы сможете его отобразить
Конечно, номера телефонов ненастоящие, это подделка. Я просто беру его, чтобы протестировать приложение
Хорошо, просто проверяю! Иногда люди забывают. Они смотрю достаточно настоящие, вот и все.
Да, эти две таблицы соответствуют действительности, как вы можете видеть на картинке. Я использую TypeID из таблицы ContactType.
@ADyson Когда я набираю SpecialtyName = a.SomeTable.Name, он отображает таблицу и поле, поэтому мне просто нужно отобразить его в представлении
Позвольте нам продолжить обсуждение в чате.
Спасибо @ADyson :) Работает





Поскольку вы используете 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 вы можете использовать его и отображать, как вам нужно.
Спасибо @ADyson
это настоящие номера телефонов и адреса, которые вы разместили здесь в общедоступном Интернете? Это действительно было необходимо для ответа на ваш вопрос? Возможно, эти компании в любом случае обнародуют часть этой информации, но я предполагаю, что номера мобильных телефонов не указаны, возможно