2016-11-10 1 views
3

Hallo bitte helfen Sie mir, dies zu verstehen, und lassen Sie uns hoffen, dass es auch anderen hilft.ASP.NET MVC Struktur. Aufruf eines Controllers aus einer Sicht

in MVC was ich verstanden habe, ist ein Model-View-Controller, der ein Muster sein sollte, wenn es richtig ist. und in meinem Kopf wie sein:

Klasse im Modell Funktion im Controller Layout oder der Ausgang in der Ansicht ASP.NET MVC Structure

aber was kann ich nicht herausfinden, ist, wie man sie kommunizieren oder zu wissen " Best Practice " Also habe ich diese einfache Idee, um mich zu verstehen. Ich habe eine einfache Video "MP4 Referenz" auf (C: \ Users Me \ Documents \ \ FunVid.mp4)

und ich habe ein ASP.NET MVC-Projekt einschließlich erstellt: - ein Modell. "VideoProdcast.cs" - Ein Controller. "VideoController.cs" - Anzeigen "Razor". "VideoView.cshtml"

so, wenn dies das:

Modell: "VideoProdcast.cs"

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Vidi.Models 
{ 
    public class VideoProdcast 
    { 

     public int MovieId { get; set; } 
     public string MovieName { get; set; } 
    } 
} 

Controller: "VideoController.cs"

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using Vidi.Models; 

namespace Vidi.Controllers 
{ 
    public class VideoController : Controller 
    { 
     // GET: Video 
     public ActionResult VideoView() 
     { 
      var Movie = new Movie() { Name = "Movie" }; 
      return View(Movie); 
     } 
    } 
} 

Ausblick: " VideoView.cshtml "

@{ 
ViewBag.Title = "VideoView"; 
} 

<h2>VideoView</h2> 

Also die Tatsache, dass mein Film eingeschaltet ist (C: \ Users \ Me \ Documents \ FunVid.mp4) Was ist die beste Praxis, um diesen Film in meiner Ansicht zu zeigen, mit (MVC Struktur) die Ansicht funVid.mp4 aufrufen als Controller oder Funktion nach Filmnamen aus dem Modell. "Und bitte hilf mir, wenn ich falsch liege, irgendetwas zu sagen?" Beachten Sie, dass das Videoformat kein Muss ist "jedes unterstützte Format wird problemlos funktionieren".

Ich weiß nicht, ob ich es leichter oder schwerer gemacht habe zu verstehen, aber so stelle ich mir das vor. Vielen Dank im Voraus, ich schätze deine Hilfe sehr.

+0

ASP.NET MVC ist nicht wahr "MVC" - das ViewModel ist nicht das Modell - es dient als Vermittler zwischen dem Controller und der Ansicht. Das Modell selbst ist häufig das Objekt Ihrer Geschäftseinheit, das nicht auf Ihr Szenario zutrifft. Also besser als "MCVmV" (Model-Controller-ViewModel-View) beschrieben ... – Dai

Antwort

1

nicht sicher, ob dies eine bewährte Methode ist:

  1. Add URL zu Ihrem Modell als String.

  2. In Ihrem Controller, füllen Sie Ihr Modell mit dem Pfad zu Ihrem Video, von wo auch immer sie gespeichert sind, oder einfach

    var Film = new VideoProdCast() {NameName = "Movie", URL = „C: \ deinpfad \ deinvideo.mp4 ", id = 1}; Rückansicht (Film);

  3. In Ihrer Ansicht, stellen Sie Ihr Video src = model.url, verweisen Sie auch auf das Modell am oberen Rand der Ansicht.

1

Sie sind sehr auf dem richtigen Weg. Die beiden wichtigsten Dinge, die Ihnen fehlen, sind der Pfad zu der Datei, den Sie angegeben haben, und die von Ihnen angefangene Modellbindung.

Wie für den Dateipfad, sollte dies eine Eigenschaft des VideoProdcast Model:

public class VideoProdcast 
{ 
    public int MovieId { get; set; } 
    public string MovieName { get; set; } 
    public string MoviePath { get; set; } 
} 

Dann fügen Sie die folgende Zeile in Aussicht:

@model Vidi.Models.VideoProdcast 

Dies gibt Ihnen die Zugang Filmmodellobjekt, das Sie an die Ansicht im Controller übergeben haben (return View(Movie);). Da Sie den Pfad zur Datei hinzugefügt haben, können Sie jetzt etwas zu Ihrer Ansicht hinzuzufügen:

<video src="@Model.MoviePath">@Model.MovieName</video> 

oder so etwas auf der Seite das Video zu zeigen.

Verwandte Themen