asp.net 中的查询字符串和自定义控件
本文关键字:字符串 自定义控件 查询 net asp | 更新日期: 2023-09-27 18:32:19
我正在开发一个允许用户将视频上传到我的网站的网站。我想动态显示上传的视频,即每当用户上传视频时,视频都应该可见。为此,我构建了一个自定义控制视频播放器。如果我直接提供"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。
好的,我了解到 ~/并不总是有用的:)这不起作用的原因是
imageButton.ImageUrl = "~/Uploads/" + fi.Name;
我从上面的行中删除了~/,它开始像魅力一样工作:)