Frage

User View Control hat keinen Code. Also, wo/wie soll ich das machen events von Elementen?

Ich möchte eine Logik einer Kontrolle in MVC verstehen ...

War es hilfreich?

Lösung

In MVC gibt es keine Benutzersteuerung, daher sollten Sie sich nicht um die Logik einer Kontrolle kümmern. Es gibt keine Postbacks in MVC. Es gibt keinen ViewState in MVC. Es gibt keine Ereignisse in MVC.

Es gibt Modelle:

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

Controller manipulieren das Modell:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Name = "John"
        });
    }
}

und Ansichten, die die im Modell enthaltenen Daten rendern:

@model AppName.Models.MyViewModel
<div>@Model.Name</div>

Wenn Ansichten etwas in den Controller aufrufen müssen, verwenden sie keine Postbacks oder Ereignisse mehr: Sie verwenden Standard -HTML -Artefakte wie Ankerlinks zum Senden von GET -Anfragen und -Formularen zum Senden von Postanfragen.

Beispiel:

@Html.ActionLink("click me", "Foo", new { param = "123" })

würde eine Ankerlink zum FOO -Controller -Aktion erzeugen param=123 als Abfragestnparameter:

<a href="/home/foo?param=123">click me</a>

und die folgende:

@using (Html.BeginForm("Foo", "Home"))
{
    @Html.TextBoxFor(x => x.Name)
    <input type="submit" value="OK">
}

Würde ein HTML -Formular generieren, mit dem Sie einige Informationen in die FOO -Controller -Aktion veröffentlichen können:

<form action="/Home/Foo" method="post">
    <input type="text" id="Name" name="Name" value="" />
    <input type="submit" value="OK" />
</form>

Nützliche Ressourcen mit vielen Tutorials und Videos zum Erlernen von ASP.NET MVC:

Andere Tipps

Persönlich ID ID die Logik im Controller oder lassen Sie den Controller eine Geschäftslogikklasse aufrufen, die die Arbeit für Sie erledigt. Der Controller gibt dann die Ansicht zurück. Geben Sie das Modell aus dem Controller in Ihre Ansicht und geben Sie das Modell aus der Ansicht in die Teilansicht (MVC -Äquivalent einer Benutzersteuerung).

Dies bedeutet, dass die Ansicht/ Teilansicht keine Logik gibt und dass Sie das Modell auf sehr saubere Weise rendern können

Macht das Sinn?

Sie scheinen dem WebForms -Seitenlebenszyklus zu sehr verbunden zu sein.

Die Programmiermethode auf der Oberfläche für MVC unterscheidet sich grundlegend von Webformen. Es ähnelt eher Ruby on Rails.

Einige Ressourcen, mit denen Sie MVC lernen können, sind:

Offizielle MVC -Website

Scott Hanselmans Nerddinner -Projekt

Ich werde auch das NerdDinner -Projekt von Scott Hanselman empfehlen. Es ist ein großartiges Projekt, um das ASP.NET -MVC -Framework zu lernen.

Lesen und lesen Sie auch Darin Dimitrovs Antwort und lesen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top