Javascript 在asp.net mvc中单击按钮后创建文件夹

Javascript 在asp.net mvc中单击按钮后创建文件夹,javascript,c#,asp.net-mvc,directory,create-directory,Javascript,C#,Asp.net Mvc,Directory,Create Directory,我正在创建asp.net mvc 5应用程序。在该应用程序中,单击前端视图页面上的按钮后,我希望生成一个文件夹 我想在以下位置生成文件夹~/Essential\u folder/ <input type = "button" value="Create_Folder" class="btn btn-default" id="create_folder"/> 我该怎么做呢 我可以使用服务器端语言(在我的例子中是C#)来实现这一点吗 使用客户端语言(如JavaScript)可以做到

我正在创建asp.net mvc 5应用程序。在该应用程序中,单击前端视图页面上的按钮后,我希望生成一个文件夹

我想在以下位置生成文件夹
~/Essential\u folder/

<input type = "button" value="Create_Folder" class="btn btn-default" id="create_folder"/>

我该怎么做呢

  • 我可以使用服务器端语言(在我的例子中是C#)来实现这一点吗

  • 使用客户端语言(如JavaScript)可以做到这一点吗

  • 剧本

    <script type="text/javascript">
    
         $('btn-default').click(function () {
    
    
         });
    
      </script>
    
    
    $('btn-default')。单击(函数(){
    });
    
    正如@Stephen所提到的,您需要使用ajax来创建文件夹。因此,您可以使用如下操作方法:

        [HttpPost]
        public JsonResult CreateDirectory()
        {
            //if location has folder called "Essential_Folder" it should allow to goto inside of this if condition
            if (Directory.Exists(Server.MapPath("~/Content/Essential_Folder/")))
            {
                Directory.CreateDirectory(Server.MapPath(string.Format("~/Content/Essential_Folder/NewDir_{0}",
                DateTime.Now.Millisecond)));
                return Json("OK");
            }
            return Json("NO");
        }
    
    <script type="text/javascript">
    
        $('.btn').click(function() {
            $.ajax({
                url: "@Url.Action("CreateDirectory")",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (response) {
                    alert(response.responseText);
                },
                success: function (response) {
                    if (response === 'OK')
                        alert("Directory has been created");
                    else
                        alert("errro");
                }
            });
        });
    
    </script>
    
    您的ajax调用应该是这样的:

        [HttpPost]
        public JsonResult CreateDirectory()
        {
            //if location has folder called "Essential_Folder" it should allow to goto inside of this if condition
            if (Directory.Exists(Server.MapPath("~/Content/Essential_Folder/")))
            {
                Directory.CreateDirectory(Server.MapPath(string.Format("~/Content/Essential_Folder/NewDir_{0}",
                DateTime.Now.Millisecond)));
                return Json("OK");
            }
            return Json("NO");
        }
    
    <script type="text/javascript">
    
        $('.btn').click(function() {
            $.ajax({
                url: "@Url.Action("CreateDirectory")",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (response) {
                    alert(response.responseText);
                },
                success: function (response) {
                    if (response === 'OK')
                        alert("Directory has been created");
                    else
                        alert("errro");
                }
            });
        });
    
    </script>
    
    
    $('.btn')。单击(函数(){
    $.ajax({
    url:“@url.Action(“CreateDirectory”)”,
    类型:“POST”,
    contentType:“应用程序/json;字符集=utf-8”,
    数据类型:“json”,
    错误:函数(响应){
    警报(response.responseText);
    },
    成功:功能(响应){
    如果(响应=='OK')
    警报(“已创建目录”);
    其他的
    警报(“errro”);
    }
    });
    });
    
    您需要处理按钮
    。单击()。因为由于安全原因,javascript或jquery无法在windows中实际创建文件/文件夹。那么为什么不直接让按钮点击控制器动作来创建目录呢@dotnetkid这正是我的评论stating@StephenMuecke因此,我应该看看“在asp.net mvc中使用ajax创建文件夹”是不是?控制器代码只需要使用该方法(并返回一个
    JsonResult
    ,以指示成功还是可以在ajax成功回调中测试),因为调用进行了修改,它可能应该是一个帖子而不是一个GET(不希望用户能够导航到它)不要在同一个位置使用
    Server.MapPath
    两次。@Sirwanaffi谢谢我正在尝试集成此解决方案,这里我还有一个问题,如果我们想创建新文件夹,我们应该在
    ~/Content
    位置内创建吗?通常在
    ~/Content
    内存储文件和文件夹,但您也可以使用
    ~/Essential\u Folder/
    @sirwanaffi但很久以前,在mvc 4应用程序中,我在根位置内手动创建文件夹,然后使用IIS管理器部署该项目,但后来那个文件夹消失了,我想这就是为什么你提到那个位置