Wie füge ich einer Benutzeransichtskontrolle in MVC 3 Logik hinzu?
-
25-10-2019 - |
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 ...
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:
ITT sollte Ihnen helfen
http://www.asp.net/mvc/videos/how-do-i-work-with-data-in-aspnet-mvc-partial-views
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