Javascript在C#代码中没有被触发

时间:2014-02-09 21:30:14

标签: c# javascript

我有以下代码在程序中上传附件。在此过程中,如果客户端在上载文件中选择了相同的命名文档,该文件先前已在程序中上载,则必须为客户端提供警告消息以更改文档的名称。

代码段:

private string UploadFile()
    {
        string pathToSaveFile = Server.MapPath("~/Data/");
        string clientFileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);

        string upload_data = pathToSaveFile + clientFileName;

        if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.ContentLength > 0)
        {

            if (System.IO.File.Exists(upload_data))
            {
                //using Response.write
                Response.Write(@"<script type='text/javascript'>alert('Rename it please.');</script>");

                //ClientScriptManager
                var clientScript = Page.ClientScript;
                clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", "alert('Rename it please.')'", true);

                //ScriptManger
                ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "alert('Member Registered Sucessfully');", true);

            }
            else
            {
                FileUpload1.PostedFile.SaveAs(System.IO.Path.Combine(pathToSaveFile, clientFileName));
            }
        }
        else
        {
            Response.Write("Not Available");
        }

        return clientFileName;
    }

我在程序中使用了javascript代码的类型,但它们都不起作用。代码阅读器只是读取代码并通过它。

当我提交表单b utton时,所有表单字段都被读取并保存在一个对象中,当涉及到上传部分时,将读取上述代码并将clientFileName传递给文件名对象并传递给sqlquery将其输入数据库。

它不会显示客户端更改文件名的任何警告弹出窗口。因此,相同的文件名称将传递给服务器,并且由于名称相同而开始冲突。

感谢。

1 个答案:

答案 0 :(得分:0)

只有在您重新发布网站时才会弹出警告。 它无法在C#代码中运行。

请参阅下面的代码(仅供参考):

private bool UploadFile()
{
    string pathToSaveFile = Server.MapPath("~/Data/");
    string clientFileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);

    string upload_data = pathToSaveFile + clientFileName;

    if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.ContentLength > 0)
    {

        if (System.IO.File.Exists(upload_data))
        {
            //using Response.write
            Response.Write(@"<script type='text/javascript'>alert('Rename it please.');</script>");

            //ClientScriptManager
            var clientScript = Page.ClientScript;
            clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", "alert('Rename it please.')'", true);

            //ScriptManger
            ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "alert('Member Registered Sucessfully');", true);
    return false;
        }
        else
        {
            FileUpload1.PostedFile.SaveAs(System.IO.Path.Combine(pathToSaveFile, clientFileName));
        }
    }
    else
    {
        Response.Write("Not Available");
    }

ViewState["FileName"] = clientFileName;
    return true;
}

在函数之外使用类似这样的东西:

if(UploadFile())
        //run your SQL queue
    else
        return;//do all the return that will repost the website.