Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 电子邮件附件在Chrome中不起作用_C#_Jquery_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

C# 电子邮件附件在Chrome中不起作用

C# 电子邮件附件在Chrome中不起作用,c#,jquery,asp.net,asp.net-mvc-3,C#,Jquery,Asp.net,Asp.net Mvc 3,我正在成功地将附件文件传递给我的控制器,但我在Chrome上遇到了问题,不仅仅是我的浏览样式。。。按钮和附加文本,如“未选择文件”,但UploadAttachment_Complete函数也不会返回文件名以供显示,因此用户不知道文件已上载。我想我需要问一个问题。为什么Chrome会破坏我的代码?如果不是,我们能淘汰铬吗 <tr> <td style="width: 196px; height:40px"> <

我正在成功地将附件文件传递给我的控制器,但我在Chrome上遇到了问题,不仅仅是我的浏览样式。。。按钮和附加文本,如“未选择文件”,但UploadAttachment_Complete函数也不会返回文件名以供显示,因此用户不知道文件已上载。我想我需要问一个问题。为什么Chrome会破坏我的代码?如果不是,我们能淘汰铬吗

<tr>
      <td style="width: 196px; height:40px">
                        <div id="FileAttached" style="font-size: xx-small;">
                            Attachments:
                            @if (Model.Attachment != null)
                            {
                                foreach (var a in Model.Attachment)
                                {   
                                    <div id="@a.FileName">@a.FileName<a href='#' title='delete' class="itemDelete">   delete</a></div>
                                }
                            }
                        </div>
                    </td>
                    <td>
                        @using (Html.BeginForm("EmailAttachment", "Message", new { messageID = Model.MessageID }, FormMethod.Post, new { enctype = "multipart/form-data", id = "emailForm", name = "emailForm", target = "UploadTarget" }))
                        {
                            <input type="file" name="attachment" />
                            <input type="button" class="InnerButton" style="float:right"; value="Upload Attachment" onclick="UploadAttachment()" />
                        }   
                        <iframe id="UploadTarget" name="UploadTarget" onload="UploadAttachment_Complete();" style="position: absolute; left: -999em; top: -999em;"></iframe> 
                    </td>
                </tr>

附件:
@如果(Model.Attachment!=null)
{
foreach(模型附件中的变量a)
{   
@a、 文件名
}
}
@使用(Html.BeginForm(“EmailAttachment”,“Message”,new{messageID=Model.messageID},FormMethod.Post,new{enctype=“multipart/form data”,id=“emailForm”,name=“emailForm”,target=“UploadTarget”}))
{
}   
这里是我的功能

function UploadAttachment() {
    $("#emailForm").submit();
}
var isFirstLoad = true;
function UploadAttachment_Complete() {
    // First load of the iFrame?
    if (isFirstLoad == true) {
        isFirstLoad = false;
        return;
    }
    document.getElementById("emailForm").reset();
    //Grab the content of the textarea we named jsonResult . Loaded into the iFrame and carries values into variable for access.
    var newEmailAttachment = $.parseJSON($("#UploadTarget").contents().find("#jsonResult")[0].innerHTML);
    // Display errors
    if (newEmailAttachment.IsValid == false) {
        jAlert(newEmailAttachment.Message);
        return;
    }
    // Shovel the name of the attached file into a div presented below the attachment textbox.
    $("#FileAttached").append('<div id="'+ newEmailAttachment.Name + '">' + newEmailAttachment.Name + '<a href="#" title="delete" class="itemDelete">   delete</a></div>');
}
函数上传附件(){
$(“#emailForm”).submit();
}
var isFirstLoad=true;
函数上传附件_Complete(){
//iFrame的第一次加载?
如果(isFirstLoad==true){
isFirstLoad=false;
返回;
}
document.getElementById(“emailForm”).reset();
//抓取我们命名为jsonResult.的textarea的内容,加载到iFrame中,并将值携带到变量中以供访问。
var newEmailAttachment=$.parseJSON($(“#UploadTarget”).contents().find(“#jsonResult”)[0].innerHTML);
//显示错误
if(newEmailAttachment.IsValid==false){
jAlert(newEmailAttachment.Message);
返回;
}
//将附加文件的名称放入附件文本框下方的div中。
$(“#FileAttached”).append(“”+newEmailAttachment.Name+“”);
}

您提到的都是chrome。您是否在其他浏览器中对此进行过测试?如果是,有哪些浏览器?究竟什么是铬断裂?它是怎么打破的?你说废除Chrome是什么意思?Chrome和电子邮件附件到底有什么关系?电子邮件部分是服务器端的。感谢您询问@Kevin B。它在IE和FF中工作得非常好。Chrome和Safari中的中断。而不是浏览。。。按钮和应显示的文本字段;在Chrome中,你会得到一个上传。。。按钮和文本“未选择文件”。上载时,文件名不会与删除链接一起显示。废除铬是一个笑话。在Chrome中,文件被上传,但UploadAttachment_Complete函数中断,没有显示任何内容。但我已经告诉你了。中断的内容…可能不会从jsonResult获取innerHTML。好了,现在我们开始调试!从
console.log($(“#UploadTarget”)
开始,然后向上移动该行,直到进入innerHTML,测试每个步骤以确保它选择了您期望的内容。将您的结果与firefox和firebug的控制台进行比较。也可能值得将.innerHTML改为将json结果存储在textarea中,并使用textarea的value属性将其提取出来,这将确保所有浏览器一致地返回相同的json,而不会出现html解析问题。