Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
157 views
in Technique[技术] by (71.8m points)

c# - Recieve object with polmorph subobjects in asp.net mvc

I have a form that shows some polymorph data. It looks something like this:

@model MyObject
@using (Html.BeginForm())
{
    @Html.EditorFor(model => model.Name, new {htmlAttributes = new {@class = "form-control"}})
    @
    {
        switch (Model.ObjectDetails)
        {
            case Foo _:
                @Html.EditorFor(item => ((Foo) item.ItemDetails).FooProp)
            case Bar _:
                @Html.EditorFor(item => ((Bar) item.ItemDetails).BarProp)
        }
    }
}

The underlying models looks something like this:

interface IDetails { ... }

class Foo : IDetails{
    string FooProp;
}


class Bar: IDetails{
    string BarProp;
}

class MyObject{
    string Name;
    IDetails ObjectDetails;
}

I then edit the model in some ways and afterwards when submitting it I send it to a method similar to that one:

[HttpPost("/Edit/{id}")]
public IActionResult Edit(MyObject item)
{
    SaveToDb(item);
    
    return Redirect("/Index");
}

But when I recieve it in the upper Edit-method then item.ObjectDetails is always null. How can I keep underlying polymorph data when sending the edited data back to the server???

question from:https://stackoverflow.com/questions/65952346/recieve-object-with-polmorph-subobjects-in-asp-net-mvc

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...