Problem
How to get label text from table reference on database based on TableName and FieldName dynamically from database
and show on view createEmployee .
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
Query Get Data from reference Table
SELECT TableName, FieldName,EnglishtextforLabel FROM ReferenceFile WHERE (FieldName = 'EmployeeId' ) AND TableName = 'Employee'
Database Have two tables Employee and ReferenceFileDatabase Have two tables Employee and Reference File(may be
increase
models and views so that if any thing general is prefer)
- Models classes Include HRContext
-
- public class ReferenceFile(have 3 key as composit keys(Code,TableName,FieldName))
- {
- 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 });
- }
- }
-
-
- Employee View Create(this static and i dont need . i need view labels get from reference table)
-
- <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>
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