我有一个母版页,在另一个asp.net表单中我需要调用一个方法来.ashx文件,如下所示:
由于我对按钮有问题,因为无论按哪个按钮,我都会点击它发回我不想要的内容。
<form id="Form1" action="Upload.ashx" method="POST" enctype="multipart/form-data"
runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div id="fileupload" style="border: thin solid #666666; width: 600px; height: 520px;
z-index: 1; left: 18px; top: 22px; position: absolute; overflow: auto;">
<div class="fileupload-buttonbar">
<label class="fileinput-button">
<span>Add files...</span>
<input type="file" name="files[]" multiple="multiple" />
</label>
<button type="submit" class="start">
Start upload</button>
<button type="reset" class="cancel">
Cancel upload</button>
<button type="button" class="delete">
Delete all files</button>
<div class="fileupload-progressbar">
</div>
</div>
<div class="fileupload-content" style="border-style: none">
<table class="files">
</table>
</div>
</div>
</form>
这是不可能的,因为我有一个内容页面。
那么我如何在基于母版页的asp.net表单的内容中做到这一点。
答案 0 :(得分:1)
您不能将服务器端表单标记发布到其他页面。服务器端表单控件旨在回发给自己(它忽略了操作属性) - 这就是为什么你看到你的页面被发布到(内容)页面的原因。主页面实际上不是页面而是模板/布局 - 内容页面表示实际页面(主页面实际上是控件树被合并到内容页面树中的控件)。
您还可以使用服务器端按钮控件cross-page posting in ASP.NET。
但是,我相信无论您想要实现什么,都需要创建单独的 html表单标记。例如,
...
<!-- server side form - do not touch -->
<form id="Form1" runat="server">
...
</form>
...
<!-- you can have multiple html form tags but you cannot use server controls -->
<form action="Upload.ashx" method="POST" enctype="multipart/form-data">
...
</form>
...