0

I need to display text boxes of two classes in one view. I use the Entity framework database first approach and don't know how to display 2 data models in one view. Also, I need to hide one of these class text boxes and show up on the click of a button.

Here is the first class "Task"

public partial class Tasks1
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Tasks1()
    {
        this.Sub_tasks = new HashSet<Sub_tasks>();
    }

    public int Task_id { get; set; }
    public string Name { get; set; }
    public string Type { get; set; }
    public Nullable<System.DateTime> Start_date { get; set; }
    public Nullable<System.DateTime> End_date { get; set; }
    public string Assigned_dept { get; set; }
    public string Assigned_emp { get; set; }
    public string Priority_type { get; set; }
    public Nullable<bool> Status { get; set; }
    public int Step_id { get; set; }

    public virtual Step Step { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Sub_tasks> Sub_tasks { get; set; }
}

This is the second

public partial class Step
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Step()
    {
        this.Tasks1 = new HashSet<Tasks1>();
    }

    public int Step_id { get; set; }
    public string Step_type { get; set; }
    public Nullable<bool> Status { get; set; }
    public int Process_id { get; set; }

    public virtual Process Process { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Tasks1> Tasks1 { get; set; }
}

The error I got.

enter image description here

please help me! if my question is stupid, please be kind enough to explain this.

1 Answer 1

1

You can pack these 2 models to 1 model, like this:

public class FullVM
{
    public Tasks1 MyTask {get;set;}
    public Step MyStep {get;set;}
}

So your cshtml can be written like this:

@model YourNamespace.FullVM


@Html.IdFor(model => model.MyTask.Assigned_emp)
@Html.EditorFor(model => model.MyStep.Process_id)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.