How to get label text from table reference on database based on TableName and FieldName

asp.net asp.net-mvc c# entity-framework-core

Question

Problem

How to get label text from table reference on database based on TableName and FieldName dynamically from database and show on view createEmployee .

Details

Meaning i need to get label text dynamically from database not static from model

SO that Every Time i need to change text of label i will change it from database depend on reference table

AND No need to change from code .

IF You give me function or any thing general because i have more models and view i need to make like that)

Tools used sql server 2012 and visual studio 2017 asp.net core 2.1

Database Have two tables Employee and Reference

Reference Table (have 3 key as composit keys(Code,TableName,FieldName))

Models classes Include 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>

Query Get Data from reference Table

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

Here i need to get label on view create from table reference not static field name

Sample data for ReferenceTable

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

As reference table above sample labels on view create must be Give me the Result below

:

Code

Name

Age
1
0
12/27/2018 9:51:36 AM

Popular Answer

Just use Model Binding... then you can use your FieldName in the label:

@model MyModelType

<label class="control-label">@Model.FieldName</label>
<input asp-for="EmployeeName" class="form-control" />
0
12/27/2018 10:06:41 AM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow