尝试在MVC3应用程序中使用Uploadify是什么问题?

问题描述

| 为什么文件输入元素根本不显示???请参见下面的代码和屏幕截图。我花了最后几个小时在我能找到的每个论坛上进行研究。我无法获得一致的答案。
<!DOCTYPE html>
<html>
<head><title>

    Home Page

</title><link href=\"mvc3/Content/Site.css\" rel=\"stylesheet\" type=\"text/css\" />
    <script src=\"/mvc3/Scripts/jquery-1.5.1.js\" type=\"text/javascript\"></script>
    <script src=\"/mvc3/uploadify/jquery.uploadify.v2.1.4.js\" type=\"text/javascript\"></script>
    <script src=\"/mvc3/uploadify/swfobject.js\" type=\"text/javascript\"></script>
        <script type=\"text/javascript\">
            jQuery.noConflict();
            jQuery(document).ready(function () {
                jQuery(\"#dr405\").uploadify({
                    \'uploader\': \'uploadify.swf\',\'cancelImg\': \'cancel.png\',\'buttonText\': \'browse Files\',\'script\': \'Uploader.ashx\',\'folder\': \'uploads\',\'fileDesc\': \'Image Files\',\'fileExt\': \'*.jpg;*.jpeg;*.gif;*.png\',\'multi\': true,\'auto\': true
                });
            }); 
    </script> 
</head>
<body>
    <div class=\"page\">
        <div id=\"header\">
            <div id=\"title\">
                <h1>My MVC Application</h1>
            </div>
            <div id=\"logindisplay\">

        Welcome <strong>dougrchAmberlain</strong>!
        [ <a href=\"/mvc3/Account/logoff\">Log Off</a> ]

            </div> 
            <div id=\"menucontainer\">
                <ul id=\"menu\">
                    <li><a href=\"/mvc3/\">Home</a></li>
                    <li><a href=\"/mvc3/Home/About\">About</a></li>
                </ul>
            </div>
        </div>
        <div id=\"main\">

    <h2>Welcome to ASP.NET MVC!</h2>

    <p>Please upload your return</p>   
    <input type=\"file\" name=\"dr405\" id=\"dr405\" />


            <div id=\"footer\">
            </div>
        </div>
    </div>
</body>
</html>
更新资料 修复url引用后。要实际指向有问题的文件,这是我最后看到的内容。     

解决方法

uploadify.swf
的网址看起来不正确。我建议您在处理URL时始终使用URL帮助器:
jQuery(\"#dr405\").uploadify({
    \'uploader\': \'@Url.Content(\"~/mvc3/uploadify/uploadify.swf\")\',\'cancelImg\': \'cancel.png\',...
});
    ,尽管我没有使用ashx,但我遇到了同样的问题。问题是我没有正确引用控制器的方法。我的控制器名为FileController.cs,因此我使用的是\'script \':\'File / Upload \',而不是\'script \':\'FileController / Upload \',现在不再出现IO错误-它调用了该函数在控制器中正确。
<script type=\"text/javascript\">
$(document).ready(function () {
    $(\"#file_upload\").uploadify({
        \'uploader\': \'/uploadify/uploadify.swf\',\'script\': \'/File/Upload\',\'cancelImg\': \'/uploadify/cancel.png\',\'multi\': true,\'auto\': true,\'buttonText\': \'SELECT\',\'onComplete\': function (event,queueID,fileObj,response,data) {
            $(\"#\" + $(this).attr(\'id\') + queueID + \" .percentage\").text(\' - Completed\');
            return false;
         }
    });
});
public string Upload(HttpPostedFileBase fileData)
    {
        var fileName = this.Server.MapPath(\"~/uploads/\" + System.IO.Path.GetFileName(fileData.FileName));
        fileData.SaveAs(fileName);
        return \"ok\";
    }