【问题标题】:Query String and Custom Controls in asp.netasp.net 中的查询字符串和自定义控件
【发布时间】:2013-09-21 12:40:42
【问题描述】:

我正在开发一个允许用户将视频上传到我的网站的网站。 我想动态显示上传的视频,即只要用户上传视频,视频就应该可见。 为此,我构建了一个自定义控制视频播放器。如果我直接提供“mp4url”,它工作正常。 但是,如果我使用查询字符串传递 mp4url,它就不起作用。

我有一个提交页面,允许用户使用文件上传控件上传视频,这些视频被上传到“上传”文件夹

 //Move through the "Uploads" folder and display the thumbnails of the videos after file has been uploaded
    private void LoadThumbnails()
    {
        foreach (string strfile in Directory.GetFiles(Server.MapPath("~/Uploads")))
        {
            ImageButton imageButton = new ImageButton();
            FileInfo fi = new FileInfo(strfile);
            imageButton.ImageUrl = "~/Uploads/" + fi.Name;
            imageButton.Height = Unit.Pixel(100);
            imageButton.Style.Add("padding", "5px");
            imageButton.Width = Unit.Pixel(100);
            imageButton.Click += new ImageClickEventHandler(imageButton_Click);
            Panel1.Controls.Add(imageButton);
        }
    }

    //Redirect to the "Videos" page using Querystring
    protected void imageButton_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("Videos.aspx?VideoURL=" + ((ImageButton)sender).ImageUrl);
    }

有一个名为“视频”的页面有一个视频播放器,它使用查询字符串接收“Mp4Url”

 <cc1:VideoPlayer ID="VideoPlayer1" runat="server" Mp4Url='<%# Request.QueryString["VideoURL"]%>'  Width="400" Height="300" />

这不起作用,知道什么改变会纠正这个问题吗?(问题是视频播放器没有播放视频)

附言

      protected void Page_Load(object sender, EventArgs e)
      {
        VideoPlayer1.Mp4Url = Request.QueryString["VideoURL"];
      }

即使是视频页面的代码隐藏文件中的上述代码也不起作用。

如果我使用

<cc1:VideoPlayer ID="VideoPlayer1" runat="server" Mp4Url="Uploads/movie.mp4"  Width="400" Height="300" />

它工作正常。但是,这需要手动分配 mp4url。

【问题讨论】:

  • 当您在调试器中检查查询字符串时,它会显示什么?
  • 好吧,没什么。我看到的只是视频播放器的黑屏
  • 我的意思是,在 VideoPlayer1.Mp4Url = Request.QueryString["VideoURL"]; 上设置一个断点并检查 QueryString - 它显示了什么?
  • 在调用堆栈中,我看到这一行“MyWebsite.dll!MyWebsite.Videos.Page_Load(object sender, System.EventArgs e) Line 20”
  • ?我说检查QueryString.. 在调试器中暂停时将鼠标悬停在对象上,它将显示它的值

标签: c# asp.net video file-upload


【解决方案1】:

好的,我了解到 ~/ 并不总是有用 :) 这不起作用的原因是

imageButton.ImageUrl = "~/Uploads/" + fi.Name;

我从上面的行中删除了 ~/,它开始像魅力一样工作:)

【讨论】:

    猜你喜欢
    • 2010-09-29
    • 2013-08-14
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2012-11-13
    • 2012-07-30
    • 2011-06-03
    相关资源
    最近更新 更多