我创建了一个空白的asp.net表单网站。我已经使用default.aspx页面并使用
中的代码替换了默认代码https://blueimp.github.io/jQuery-File-Upload/jquery-ui.html
所以它看起来像
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
HTML / Javascript from the link above.
</asp:Content>
如果我删除主文件内容并只粘贴页面内容就可以完美地运行。所以出于某种原因
当我点击添加文件并浏览文件时,页面上没有显示文件,但是当我没有主文件时,它会显示正常。
我知道这不是很好的调试信息。如果有人知道一个好的方法,我甚至冷调试这将是伟大的。
如果我猜测出现以下代码是导致错误的原因。
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
{% console.log(file.name); %}
<tr class="template-upload fade">
<td>
<span class="preview"></span>
</td>
<td>
<p class="name">{%=file.name%}</p>
<strong class="error"></strong>
</td>
<td>
<p class="size">Processing...</p>
<div class="progress"></div>
</td>
<td>
{% if (!i && !o.options.autoUpload) { %}
<button class="start" disabled>Start</button>
{% } %}
{% if (!i) { %}
<button class="cancel">Cancel</button>
{% } %}
</td>
</tr>
{% } %}
</script>
当我通过浏览器查看html时,当我使用主文件加载时,页面中缺少以下表单
<form id="fileupload" action="sendfiles" method="POST" enctype="multipart/form-data">
答案 0 :(得分:1)
在处理ASPX时,从不在javascript中使用原始html id,你需要通过查找真实的id,
<script>
var controlId = '<%= this.SomeControl.ClientId %>'
var things = $(controlId);
</script>
&lt;%= ...%&gt;逻辑是一个ASPX表达式,服务器端的aspx引擎会看到它并将其转换成你要求它的响应。
答案 1 :(得分:0)
现在你已经找到了丢失的表格 - Asp.Net webforms不允许使用多个元素。这是webforms带来的烦恼,但是在这里的第一个答案中可以找到一些解决方法,以及对该问题的良好讨论: Can we use multiple forms in a web page?
上一个答案 - 在浏览器中查看生成的HTML的来源(F12)。我猜测,在可用的信息很少的情况下,您在jQuery中定位的元素的ID正在母版页的子节点中进行更改。