Как получить текст метки из ссылки на таблицу в базе данных на основе TableName и FieldName - PullRequest
0 голосов
/ 27 декабря 2018

Проблема

Как динамически получить текст метки из ссылки на таблицу в базе данных на основе TableName и FieldName из базы данных и показать в представлении createEmployee.

Подробности

То есть мне нужно динамически получать текст метки из базы данных, а не статически из модели

ТАК, что каждый раз, когда мне нужно изменить текст метки, я буду менять его из базы данных, в зависимости от справочной таблицы.

И нет необходимости переходить из кода.

ЕСЛИ Вы даете мне функцию или что-то общее, потому что у меня есть больше моделей и вид, мне нужно сделать так)

Инструментыиспользуется SQL Server 2012 и Visual Studio 2017 ядро ​​asp.net 2.1

База данных Имеет две таблицы Employee и Reference

Справочная таблица (имеет 3 ключа в качестве ключей композитного кода (Code, TableName, FieldName))

Классы моделей включают в себя HRContext

public class ReferenceFile
    {
        public int Code { get; set; }
        public string TableName { get; set; }
        public string FieldName { get; set; }
        public string EnglishtextforLabel{ get; set; }

    }
 public class Employee
    {
        public int EmployeeId { get; set; }
        public string EmployeeName { get; set; }
        public int EmployeeAge { get; set; }
    }
 public class HRContext : DbContext
    {
        public HRContext(DbContextOptions<HRContext> options)
: base(options)
        { }

        public DbSet<Employee> Employees { get; set; }
        public DbSet<ReferenceFile> ReferenceFiles { get; set; }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Employee>()
               .HasKey(t => new { t.EmployeeId });

            modelBuilder.Entity<ReferenceFile>()
                .HasKey(t => new { t.Code,t.TableName,t.FieldName });
        }
    }

<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="EmployeeName" class="control-label"></label>
                <input asp-for="EmployeeName" class="form-control" />
                <span asp-validation-for="EmployeeName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="EmployeeAge" class="control-label"></label>
                <input asp-for="EmployeeAge" class="form-control" />
                <span asp-validation-for="EmployeeAge" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>

Запрос Получение данных из справочной таблицы

SELECT TableName, FieldName,EnglishtextforLabel FROM ReferenceFile WHERE (FieldName = 'EmployeeId' ) AND TableName = 'Employee'

Здесь мне нужно получить метку при создании представления из ссылки на таблицу not имя статического поля

Пример данных для ReferenceTable

Code  TableName  FieldName    EnglishtextforLabel 
1      Employee  EmployeeId          Code
2      Employee  EmployeeName        Name        
3      Employee  EmployeeAge         Age

В качестве справочной таблицы, приведенной выше, образец меток при создании представления должен быть ниже. Дайте мне результат ниже

:

Code

Name

Age

1 Ответ

0 голосов
/ 27 декабря 2018

Просто используйте Связывание модели ... тогда вы можете использовать свое имя поля в метке:

@model MyModelType

<label class="control-label">@Model.FieldName</label>
<input asp-for="EmployeeName" class="form-control" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...