ASP.NET一个web表单两个输入文件字段

时间:2016-03-10 19:48:05

标签: c# html asp.net

我在ASP.NET中有一个webform和两个输入文件字段,因为用户应该通过一个文件输入上传一个xml文件,另一个上传一个视频。这两个输入(下面的代码中的id xmlurl和videourl)具有相同的形式。我还有两个提交按钮(ids load_mp4_button和load_xml_button),用户在希望上传文件时必须按下这些按钮。使用第一个按钮时,必须在相应的div中加载地图,并在第二个div中加载一个视频。

<form id="form1" runat="server" method="post">
<div id="map" class="map"  runat="server"></div>
<div id="info"  runat="server">&nbsp;</div>
<input id="xmlurl"  runat="server" type="file" accept="text/xml" name="xmlurl" />
<input id="load_xml_button"  runat="server" type="submit"  />
<input id="videourl"  runat="server" type="file" accept=".mp4" name="videourl" />
<input id="load_mp4_button"  runat="server" type="submit"  />
<video id="video"  runat="server" width="640" height="480" controls="controls">
    Your browser does not support the video tag.
</video>
</form>

我已在c#中为这两个按钮添加了事件侦听器,以便将文件的物理路径转换为url,并加载地图和视频。 例如,在服务器端:

    protected void Page_Load(object sender, EventArgs e)
    {
    //add event listeners

        load_mp4_button.ServerClick += new EventHandler(this.mp4_button_clicked);
        load_xml_button.ServerClick += new EventHandler(this.xml_button_clicked);

    }

protected void mp4_button_clicked(object sender, EventArgs e)
    {
        //request the first file
        HttpPostedFile filePosted = Request.Files["videourl"];
        string url_path1 = Path2url(filePosted);

        //do something with the file

    }
    protected void xml_button_clicked(object sender, EventArgs e)
    {
        //request the second file
        HttpPostedFile filePosted = Request.Files["xmlurl"];

    }

我遇到的问题是,无论何时按第一个按钮加载地图,然后点击第二个按钮加载视频,地图就会消失。虽然它们显示在不同的div中。使用纯js事件监听器没有这样的问题。 有人知道这是否发生,因为这些输入字段是相同的形式?我应该尝试使用工具箱中的asp组件吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

是的,当你点击提交时,如果你正在使用MVC,它会发送你可以在POST控制器中访问的表单。因此,在这种情况下,您的两个提交都在执行相同的操作,即发送整个表单,包括两个文件输入。