我有一个ASPX页面呈现搜索ascx页面,这反过来将填充主ASPX页面上的网格。 除此之外,我还有一个上传文件的ascx页面,如下所示:
<form method="post" action="<%= Url.Action("UploadFile") %>" enctype="multipart/form-data">
<fieldset>
<input type="file" name="file" id="file" />
<%=Html.ButtonSubmit("Upload") %>
</fieldset></form>
问题在于:想象一下我搜索了一个要在网格上显示的条目。网格显示此单个条目,在病房之后,我上传文件并按“上传”按钮。整个页面被发布,网格中的内容丢失,现在显示所有可用结果。 我该怎么做才能防止这种情况发生,保持网格状态(我们没有使用ViewState)或者不回发整个页面而只返回带文件上传的ascx?
注意:我是MVC的新手。
答案 0 :(得分:1)
您的部分视图会在您的HTML中呈现...这会产生一个“静态”HTML文件,而无法提交和重新加载部分内容。
我可以想象两种解决问题的方法:
1)将您的upload-formular放在HTML-iFrame中...现在只有这个iFrame会在提交时重新加载。问题:父级和子级框架之间的通信,以使上传的数据可用,具体取决于您在上传后要采取的操作类型。
2)使用jQuery / AJAX进行基于javascript的提交(http://api.jquery.com/jQuery.post/)并使用jQuery / JavaScript动态刷新页面内容。这将是我喜欢的方式,但需要更多关于jQuery / JavaScript的知识。
BTW:jQuery几乎是所有asp.net mvc应用程序必备的东西; - )欢迎来到MVC: - )