【发布时间】:2014-01-09 21:27:53
【问题描述】:
如果这是一个骗局,我深表歉意,但我无法找到解决问题的确切方法。
目标: 上传文件,工作,返回结果。容易吧?
问题: 我已经为此工作了几天,没有任何运气。我尝试过 XmlHttpRequest,但由于浏览器限制(无法摆脱强制最终用户和客户端使用 IE10 或更高版本),这似乎不是一个选项。
我大部分时间都花在通过 iframe 上传。我已经让上传部分工作正常。我需要做的是在处理完文件后,结果应该返回到父窗口和部分视图。
----------------------Index--------------------
Partial View Data Entry----Partial View Results
-----Upload iframe----------Results from file--
这是我的代码:
DataEntry.cshtml
<div>
...textboxes, radiobuttons, etc...
<iframe id="uploadFrame" class="seamless" frameborder="0" src='@Url.Action("UploadFile")'></iframe>
</div>
上传文件.cshtml
<script type="text/javascript">
$(document).ready(function () {
$("#uploadFile").click(function () {
$("#field1").val(window.parent.document.getElementById("field1").value);
$("#field2").val(window.parent.document.getElementById("field2").value);
...other fields...
$("#fileForm").submit();
});
$("#file").change(function () {
if ($("#file").val() != "") {
$("#uploadFile").removeAttr("disabled");
}
else {
$("#uploadFile").attr("disabled", "disabled");
}
});
});
</script>
<form id="fileForm" action='@Url.Action("UploadFile")' method="post" enctype="multipart/form-data">
<div>
Please use this template (link) to upload a list of employees and dependents.
</div>
<div class="center">
<br />
<input type="hidden" id="field1" name="field1" />
<input type="hidden" id="field2" name="field2" />
<input type="file" id="file" name="file" /><br /><br />
<input type="button" disabled="disabled" id="uploadFile" name="uploadFile" value="Upload File" class="greenButton" />
</div>
</form>
HomeController.cs
public ActionResult UploadFile()
{
return View();
}
[HttpPost]
public ActionResult UploadFile(String field1, String field2, HttpPostedFileBase file)
{
...do work...
//return View("UploadFile", object);
//return View("Result", object);
//return ?
}
返回部分是我卡住的地方。我可以做些什么来将对象返回到部分视图,而不在 iframe 中加载部分视图?
任何想法或至少在正确方向上的一点将不胜感激。甚至是重复的链接!
【问题讨论】:
标签: c# asp.net-mvc-4 iframe file-upload