webentwicklung-frage-antwort-db.com.de

Erstellen eines wiederverwendbaren Steuerelements in ASP.NET MVC

Wie kann/sollte ich ein benutzerdefiniertes Steuerelement in ASP.NET MVC 3 erstellen? Ich habe Rot für Teilansichten, ViewUsersControl, Html.RenderAction, aber ich weiß immer noch nicht, auf welche Weise die richtige MVC-Methode für Rasiereransichten verwendet wird.

Wenn ich eine Ajax-Komponente rendern muss, um sie anzuzeigen, kann ich mir vorstellen, dies als Teilansicht zu tun. Was ist jedoch, wenn ich einen Abschnitt mit benutzerdefinierter Logik rendern möchte?

8
Fanda

1) PartialViews

2) Benutzerdefinierte HTML-Helfer

3) Kinderaktionen

Aktualisieren Sie ASP.NET Core:

2) Tag-Helfer werden gegenüber benutzerdefinierten HTML-Helfern bevorzugt

3) View Components werden anstelle von Child Actions verwendet

21
syned

Sie können verwenden

@{Html.RenderPartial("YourCustomView",YourModel);}

Beispiel: Erstellen Sie in Ihrem Ordner Shared eine neue View und nennen Sie sie "_MyCustomControl".

Dann schreiben Sie in den Code:

@model YourNameSpace.Models.YourModel

@{
    Layout = null;
}

@*Here write your control's markup*@

Dann fügen Sie in Ihren Ansichten, in denen Sie diesen "control" verwenden möchten, Folgendes hinzu:

@{Html.RenderPartial("_MyCustomControl",new YourModel { args });}

Wenn Sie Ärger mit RenderPartial bekommen check this out

Zusätzlich zu allen anderen Antworten für diesen Beitrag kann ich Ihnen die Verwendung von EditorFor- und DisplayFor-Vorlagen anbieten. Diese sind nützlich, wenn Sie einen benutzerdefinierten Typ einfach rendern oder bearbeiten möchten. Es wird die Validierung gut handhaben (was bei der Verwendung von Partials komisch werden kann) und Sie können sie rekursiv verschachteln (wieder eine andere Funktion, die offensichtlich nicht praktisch ist, bis Sie sie brauchen).

Sie können auch Html.RenderAction() oder Html.Action() verwenden, um eine andere Controller-Aktion in einer Ansicht aufzurufen und die Ergebnisse direkt auf der Seite anzuzeigen. Dies ist wahrscheinlich das, was Sie am ehesten brauchen, da es Ihnen ermöglicht, einen Teil zu rendern, Code in den Controller aufzunehmen und auch die Übergabe von Parametern zu ermöglichen.

Links zu:

DisplayFor und EditorFor Vorlagen

Action und RenderAction

Wie Sie bereits erwähnt haben, können Sie Teilansichten verwenden. Ja, Sie können Teilansichten verwenden. Dies ist die effektivste und effizienteste Methode.

Für Ajax-Rendering können Sie immer verwenden

     @using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions    
  {

Einige der Links, die Sie gerne sehen würden

Teilansicht in ASP.Net MVC3 Razor mit Ajax rendern

Teilansichten mit JQuery in MVC3 rendern

0
Nipun Ambastha