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