我有一个MVC2 Web应用程序,其中我有一个包含如下简单表单的视图:
<%using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { enctype = "multipart/form-data", @id = "frmAddNewObservationPhoto" }))
{%>
<%= Html.AntiForgeryToken()%>
<strong>1. Enter Photo Description</strong><br />
<%= Html.TextArea("photoDescription", Model.photoDescription, new { @style = "height: 100px", @id = "photoDescription" })%><br />
<strong>
2. Browse New Photo:<br />
<%= Html.HiddenFor(x => x.questionNo)%>
<%= Html.HiddenFor(x => x.observationID)%>
<input id="file" type="file" name="file">
<a class="resolveTask" href="javascript:AddNewObservationPhoto()"></a><br />
Or Select Saved Photo: <br />
</strong>
<br />
<%} %>
我已经在桌面浏览器(firefox,IE,Chrome)上测试过,用户选择的文件正确地发布到我的操作中。我的操作代码如下:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddNewObservationPhoto(Guid observationID, string photoDescription, decimal questionNo)
{
TaskFireObservations fireObservation = FireHelper.GetObservationByID(observationID, _session);
if (Request.Files.Count > 0)
{
完成后,javascript如下:
function AddNewObservationPhoto() {
var photoDescription = $('#photoDescription').val();
if (photoDescription.length == 0) {
alert('Please enter the photo description');
}
else {
$('#frmAddNewObservationPhoto').submit();
}
};
我的问题是,当我在iPad版本6.0.1(因此是移动Safari浏览器)上测试时,没有文件发布到该操作。我已经在Chrome浏览器上测试了ipad,它在那里工作正常。我也在一个在线ipad模拟器上测试过它的工作原理;即所选文件已过帐到操作,然后保存到相关位置。
有谁知道为什么会发生这种情况?我希望我能够清楚地解释这个问题。
感谢。
答案 0 :(得分:0)
我将此归结为移动版Safari中的错误,因为这会间歇性地发生,即在某些情况下文件被发布而在其他情况下它什么也没做。