繁体   English   中英

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

[英]ASP.NET MVC Structure. calling a controller from a view

你好,请帮助我理解这一点,并希望它也能帮助别人。

在MVC中,我理解的是模型 - 视图 - 控制器,如果是正确的,它应该是一个模式。 在我看来它像:

控制器布局中的模型功能中的类或视图中的输出 ASP.NET MVC结构

但我无法弄清楚的是如何让他们沟通或了解“最佳实践”,所以我想出了这个简单的想法让我明白。 我有一个简单的视频“MP4供参考”(C:\\ Users \\ Me \\ Documents \\ FunVid.mp4)

我创建了一个ASP.NET MVC项目,包括: - 一个模型。 “VideoProdcast.cs” - 一个控制器。 “VideoController.cs” - 查看“Razor”。 “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结构)视图将funVid.mp4称为控制器或按模型中的电影名称功能。 “如果我说错了,请帮助我吗?” 请注意,视频格式不是必须的“任何支持的格式都可以正常工作”。

我不知道我是否更容易理解,但这就是想象它。 在此先感谢我真的很感谢你的帮助。

不确定这是否是最佳做法:

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

  2. 在您的控制器中,使用视频路径填充模型,无论它们存储在何处,或者只是

    var Movie = new VideoProdCast(){NameName =“Movie”,URL =“C:\\ yourpath \\ yourvideo.mp4”,id = 1}; 返回视图(电影);

  3. 在您的视图中,设置视频src = model.url,同时引用视图顶部的模型。

你正走在正确的轨道上。 您缺少的两个主要内容是文件的路径,如您所述,并完成您开始的模型绑定。

至于文件路径,这应该是VideoProdcast模型的属性:

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

然后,将以下行添加到您的视图:

@model Vidi.Models.VideoProdcast

这使您可以访问传递给控制器​​中视图的Movie模型对象( return View(Movie); )。 由于您已添加文件路径,因此您现在可以在视图中添加以下内容:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM