我在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"> </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组件吗?
提前致谢
答案 0 :(得分:0)
是的,当你点击提交时,如果你正在使用MVC,它会发送你可以在POST控制器中访问的表单。因此,在这种情况下,您的两个提交都在执行相同的操作,即发送整个表单,包括两个文件输入。