2016-11-10 53 views
3

你好請幫我理解這一點,並且希望它也能幫助別人。ASP.NET MVC結構。從視圖中調用控制器

在MVC裏我理解的是模型 - 視圖 - 控制器,它應該是一個模式,如果是正確的。而在我心中它像:在視圖控制器 佈局或輸出模式 功能

ASP.NET MVC Structure

,但我無法弄清楚是如何讓他們溝通或者明知「最佳實踐「 所以我想出了這個簡單的想法讓我明白。 (C:\ Users \ Me \ Documents \ FunVid.mp4)

我創建了一個ASP.NET MVC項目,其中包括: - 模型。 「VideoProdcast.cs」 - 控制器。 「VideoController.cs」 - 查看「剃鬚刀」。 「VideoView.cshtml」

因此,如果是這樣的:

型號: 「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; } 
    } 
} 

控制器: 「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); 
     } 
    } 
} 

查看:「 VideoView.cshtml「

@{ 
ViewBag.Title = "VideoView"; 
} 

<h2>VideoView</h2> 

因此,鑑於我的電影(C:\ Users \ Me \ Documents \ FunVid.mp4) 這一事實,在我的視圖中顯示此影片的最佳實踐是什麼,使用(MVC Structure)視圖來調用funVid.mp4作爲來自模型的電影名稱的控制器或功能。 「如果在說明任何內容時有錯,請幫助我嗎?」 請注意,視頻格式不是必須的,「任何受支持的犯人都可以正常工作」。

我不知道是否讓我更容易理解,但這是怎麼想的。在此先感謝我真的很感謝你的幫助。

+0

ASP.NET MVC不是真正的「MVC」 - ViewModel不是模型 - 它充當Controller和View之間的中介。模型本身通常是您的業務實體對象,它不適用於您的場景。所以最好將其描述爲「MCVmV」(Model-Controller-ViewModel-View),而不是...... – Dai

回答

1

不知道這是否是最佳的做法:

  1. 添加URL到您的模型作爲字符串。

  2. 在你的控制器,與路徑到視頻,從填充你的模型無論這些存儲,或者乾脆

    VAR電影=新VideoProdCast(){NameName = 「電影」,URL =「C: \ yourpath \ yourvideo.mp4「,id = 1}; return View(Movie);

  3. 在您的視圖中,設置您的視頻src = model.url,同時也引用視圖頂部的模型。

1

你是非常正確的軌道。如您所述,缺少的兩個主要內容是文件的路徑,並完成您開始的模型綁定。

至於文件的路徑,這應該是VideoProdcast模型的屬性:

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

然後,將下面的行添加到您的視圖:

@model Vidi.Models.VideoProdcast 

這使您可以訪問您傳遞給控制器​​中視圖的電影模型對象(return View(Movie);)。由於您已將路徑添加到文件中,因此現在可以在視圖中添加如下內容:

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

或類似的東西在頁面上顯示視頻。

相關問題