2016-11-10 92 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> 

或类似的东西在页面上显示视频。

相关问题