我在获取iframe中input type=file
的值时遇到问题并将其传递给父表单,因此在保存父表单时,输入文件的值将异步保存。
尝试在控制器中添加HttpPostedFileBase Image = Request.Files["Image"];
,但值始终为空
继承了iframe内容
<div class="form-group">
@Html.LabelFor(model => model.Image, new { @class = "control-label col-md-2 required" })
<div class="col-md-10">
<input type="file" name="Image" id="Image" style="display:none" />
<input type="button" value="Upload File" id="alterFile" /> <label id="filename"></label>
@Html.ValidationMessageFor(model => model.Image, "", new { @class = "text-danger" })
</div>
</div>
但每次我提交时,该字段的值为null,有没有办法获取Iframe内容并将其保存在父表单中?感谢
答案 0 :(得分:1)
在您的示例中,您有一个文件输入和一个按钮。
我认为你希望保持输入的类型&#39; file&#39;隐藏在用户界面上,只需提供一个按钮,上面写着“上传文件”。
要使用javascript执行此操作,您可以执行以下操作:
var alterFile = document.getElementById('alterFile');
var fileInput = document.getElementById('Image');
var fileValue = document.getElementById('fileValue');
fileInput.addEventListener('change', function() {
fileValue.textContent = fileInput.value;
});
alterFile.addEventListener('click', function() {
fileInput.click();
});
&#13;
<input type="file" name="Image" id="Image" style="display:none" />
<input type="button" value="Upload File" id="alterFile" /> <label id="filename"></label>
<label id="fileValue">Dummy Value</label>
&#13;
在更改处理程序中,您可以按照自己的意愿执行操作,例如将值传递给顶级iframe等