1

我使用KendoUi在ASP.NET MVC返回403我要使用Kendo.Editor()我写ThisCode请求的URL在KendoEditor

@(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

尝试InsertImage()之前添加Clear()象下面这样:

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

你也需要确保下面的路径是正确的,Uploads文件夹是直接在你的项目下,它应该是在同一水平Content文件夹。

"~/Uploads/Images/{0}" 
+0

谢谢你,但帮助我。但此代码不起作用 – Pouya

+0

@Pouya,请参阅我的更新的答案。 – Lin

+0

我测试这个代码但不工作。 – Pouya