ASP.NET MVC结构。从视图调用控制器

3

你好,请帮我理解一下这个问题,并希望它也能帮到其他人。

MVC 模式是什么,我理解的是一种设计模式。在我的印象中,它是这样的:

Model 类 Controller 函数 View 布局或输出 ASP.NET MVC Structure

但我不知道如何让它们相互通信或了解 "最佳实践",因此我想出了这个简单的想法来帮助我理解。

我有一个简单的视频 "MP4 参考文件"(C:\Users\Me\Documents\FunVid.mp4)

我创建了一个包括以下内容的 ASP.NET MVC 项目: - 一个 Model。"VideoProdcast.cs" - 一个 Controller。"VideoController.cs" - 一个 View。"VideoView.cshtml"

所以如果这是:

Model:"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);
         }
    }
}

视图: "VideoView.cshtml"

@{
ViewBag.Title = "VideoView";
}

<h2>VideoView</h2>

所以考虑到我的电影位于(C:\ Users \ Me \ Documents \ FunVid.mp4),使用(MVC结构)视图调用funVid.mp4作为控制器或从模型中按电影名称调用函数来显示此电影的最佳实践是什么?“如果我在陈述任何内容方面有误,请务必帮助我?” 请注意,视频格式不是必须的,“任何支持的格式都可以正常工作”。

ASP.NET MVC并不是真正的“MVC” - ViewModel并不是Model - 它作为Controller和View之间的中介。Model本身通常是业务实体对象,这与您的情况无关。因此,更好地描述它为“MCVmV”(Model-Controller-ViewModel-View)... - Dai
2个回答

1

不确定这是否是最佳实践:

  1. 将URL作为字符串添加到您的模型中。

  2. 在您的控制器中,使用存储在任何位置的视频路径填充您的模型,或者简单地

    var Movie = new VideoProdCast() { NameName = "Movie", 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>

或者类似这样的方式来在页面上展示视频。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接