Аказваючы комплекс Праглядзець ў MVC 3

У мяне ёсць база дадзеных, якая мае тры табліцы: A, B і C.

Я хачу, каб прадстаўленне для візуалізацыі дадзеных пэўным чынам. Цыклічнае праз А, то лістынг радкі B, дзе А пад B.aID = A.ID, лістынг кожную радок С у кожнай радку, дзе B = C.bId B.ID.

Я пачатковец у ASP.NET MVC3 і я не ўпэўнены, як гэта зрабіць. Усе прыклады, якія я бачыў, з'яўляюцца прама наперад.

2

2 адказы

Я хацеў бы пачаць з даданнем трох мадэляў: A, B і C. У гэтых мадэлях А ўтрымлівае спіс Б і В ўтрымлівае спіс Кассиопеяна. Для мэт тэставання, я хацеў бы таксама дадаць нешта, каб адназначна ідэнтыфікаваць іх, такія як імя. прыклад:

public class A
{
    public string Name { get; set; }

    public List Bs { get; set; }
}

public class B
{
    public string Name { get; set; }

    public List Cs { get; set; }
}

public class C
{
    public string Name { get; set; }
}

У маім кантролеры, я хацеў бы дадаць метад дзеянні, які запаўняе гэтыя мадэлі з дадзенымі. Для мэт тэставання, я выкарыстоўваю фіктыўныя дадзеныя.

public ActionResult List()
{
    C c1 = new C() { Name = "C1" };
    C c2 = new C() { Name = "C2" };
    C c3 = new C() { Name = "C3" };
    C c4 = new C() { Name = "C4" };

    B b1 = new B() { Name = "B1", Cs = new List() { c1, c3 } };
    B b2 = new B() { Name = "B2", Cs = new List() { c2, c4 } };
    B b3 = new B() { Name = "B3", Cs = new List() { c1, c2, c4 } };
    B b4 = new B() { Name = "B4", Cs = new List() { c1, c2, c3, c4 } };

    A a1 = new A() { Name = "A1", Bs = new List() { b1, b2 } };
    A a2 = new A() { Name = "A2", Bs = new List() { b3, b4 } };
    A a3 = new A() { Name = "A3", Bs = new List() { b1, b2, b3, b4 } };

    List listOfAs = new List() { a1, a2, a3 };
    return View(listOfAs);
}

І заключная частка, выгляд, каб адлюстраваць усё гэта. Проста з дапамогай @foreach ць ўкладзеным чынам дае нам тое, што нам трэба:

@model IEnumerable

List of As

<table> <tr> <th></th> </tr> @foreach (var a in Model) { <tr> <td> @a.Name
@foreach (var b in a.Bs) { @b.Name
foreach (var c in b.Cs) { @c.Name
} } </td> </tr> }

Note that the "HelloMvc" is my namespace. You probably need to change this to your own namespace.

Everything put together, this results in a list of A's with nested B's and C's:

A1
B1
C1
C3
B2
C2
C4
A2
B3
C1
C2
C4
B4
C1
C2
C3
C4
A3
B1
C1
C3
B2
C2
C4
B3
C1
C2
C4
B4
C1
C2
C3
C4

(You'll have to imagine some styling.) Hope this example helps you.

(sidenote) Funny how that third foreach doesn't have a '@' in front of it. It's not a typo or an error, if I put it there, an exception is raised. Small bug in the Razor view engine, I suspect.

Калі вы кажаце, у вас ёсць тры мадэлі A, B і C - і і хочуць паказаць прадстаўленне з дадзенымі маніпулююць з A, B і C.

Вы можаце зрабіць гэта, у метадзе дзеяння вашага кантролера зрабіць фільтраванне і вярнуць прадстаўленне ў выглядзе дынамічнай мадэлі (ананімны тыпу). У акне вы можаце прачытаць гэтую мадэль і структуру старонкі з дапамогай патрабаванай HTML. сродкі выкарыстоўваць

Пры жаданні, вы можаце вызначыць новы клас мадэлі, якая будзе прадстаўляць выніковы тып вам патрабуецца.

1
дададзена