上传文件使用MVC2,iOS6的上ipad的

问题描述:

我在我所包含的简单形式的图如下一个MVC2 web应用:上传文件使用MVC2,iOS6的上ipad的

<%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,铬测试),用户选择的文件会正确发布到我的操作中。我的动作代码开头如下:

[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浏览器)上测试这个,没有文件发布到该操作。我已经在ipad的chrome浏览器上进行了测试,并且在那里可以正常工作。我也在一个在线ipad模拟器上测试过,即所选文件被发布到该动作,然后保存到相关位置。

有谁知道为什么会发生这种情况?我希望我能够清楚地解释这个问题。

谢谢。

+0

再次嗨。我对我的问题有几点看法,但没有答案。有人可以就我的问题提供任何建议吗?谢谢。 – Shak 2013-03-26 09:51:55

我把这个问题归结为移动Safari浏览器中的一个错误,因为这是间歇性发生的,也就是说,在某些情况下文件被张贴,而其他文件不会执行任何操作。