简体   繁体   中英

Url.Action() and nested route values

I have two classes:

    public class Class1
{
    public int Id { get; set; }
    public string Param1 { get; set; }
    public string Param2 { get; set; }
    public Class2 Class2 { get; set; }
}
public class Class2
{
    public int Id { get; set; }
    public int Class1Id { get; set; }
    public string Param3 { get; set; }
    public string Param4 { get; set; }
    public Class1 Class1 { get; set; }
}

So, I need to pass props by Url.Action method like this:

Url.Action("Page",new {Class2.Param1 = "some text" })

How can I do what I want?

It's unclear what you want. If you want to pass properties from class to Action you can do this:

public class Class1 {
    public string Ok { get; set; }
}

public class Class2 {
    private Class1 cls;

    public int Test { get; set; }

    public string Ok {
        get { return cls.Ok; }
        set { cls.Ok = value; }
    }

    public Class2(Class1 cls) {
        this.cls = cls;
    }
}

var cls = new Class2(new Class1 {
    Ok = "Text"
});
cls.Test = 3;
var s = Url.Action("Page", "Controller", cls); // Result: /Controller/Page?Test=3&Ok=Text

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM