请求的URL在KendoEditor中返回403

时间:2014-02-15 13:08:17

标签: asp.net-mvc kendo-ui http-status-code-403 kendo-asp.net-mvc

我在ASP.NET MVC中使用KendoUi我想使用Kendo.Editor()我写ThisCode

@(Html.Kendo().EditorFor(m => m)
.HtmlAttributes(new { style = "width: 500px;height:300px" })
.Tools(tools => tools.InsertImage())
.ImageBrowser(imageBrowser => imageBrowser
                                .Image("~/Uploads/Images/{0}")    
                                .Read("Read", "ImageBrowser")
                                .Create("Create", "ImageBrowser")
                                .Destroy("Destroy", "ImageBrowser")
                                .Upload("Upload", "ImageBrowser")
                                .Thumbnail("Thumbnail", "ImageBrowser"))
)

和ImageBrowser控制器

 public partial class ImageBrowserController : EditorImageBrowserController
    {
        private const string contentFolderRoot = "~/Uploads/";
        private const string prettyName = "Images/";
        private static readonly string[] foldersToCopy = new[] { "~/Uploads/shared/" };


        /// <summary>
        /// Gets the base paths from which content will be served.
        /// </summary>
        public override string ContentPath
        {
            get
            {
                return CreateUserFolder();
            }
        }

        private string CreateUserFolder()
        {
            var virtualPath = Path.Combine(contentFolderRoot, prettyName);

            var path = Server.MapPath(virtualPath);
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
                foreach (var sourceFolder in foldersToCopy)
                {
                    CopyFolder(Server.MapPath(sourceFolder), path);
                }
            }
            return virtualPath;
        }

        private void CopyFolder(string source, string destination)
        {
            if (!Directory.Exists(destination))
            {
                Directory.CreateDirectory(destination);
            }

            foreach (var file in Directory.EnumerateFiles(source))
            {
                var dest = Path.Combine(destination, Path.GetFileName(file));
                System.IO.File.Copy(file, dest);
            }

            foreach (var folder in Directory.EnumerateDirectories(source))
            {
                var dest = Path.Combine(destination, Path.GetFileName(folder));
                CopyFolder(folder, dest);
            }
        }
    }

运行此视图时Kendo.Editor创建正常。但是点击InsertImage图标时会出现The requested URL returned 403错误

Edit01:

查看此代码:

@(Html.Kendo().EditorFor(model => model.TenderContent)
    .HtmlAttributes(new { style = "width: 500px;height:300px" })

    .Tools(tools => tools.InsertImage())
    .ImageBrowser(imageBrowser => imageBrowser
                                    .Image("~/Uploads/Images/{0}")
                                    .Read("Read", "ImageBrowser")
                                    .Create("Create", "ImageBrowser")
                                    .Destroy("Destroy", "ImageBrowser")
                                    .Upload("Upload", "ImageBrowser")
                                    .Thumbnail("Thumbnail", "ImageBrowser"))
                                )

解决方案图片: enter image description here

请帮帮我。谢谢大家。

1 个答案:

答案 0 :(得分:1)

尝试在Clear()之前添加InsertImage(),如下所示:

.Tools(tools => tools.Clear().InsertImage())

此外,您需要确保以下路径正确,Uploads文件夹直接位于您的项目下,它应与Content文件夹位于同一级别。

"~/Uploads/Images/{0}"