Kendo UI Editor ImageBrowser路径问题

时间:2013-04-04 18:43:33

标签: asp.net-mvc kendo-ui

我在将一个字符串参数从视图传递给控制器​​时遇到问题。

查看:

@model ImageModel

@(Html.Kendo().Editor()
          .Name("EditorCustom")
          .ImageBrowser(imagEditorImageBrowserControllereBrowser => imageBrowser
            .Image(Model.fullpath)
            .Read("Read", "ImageBrowser")
            .Upload("Upload2", "ImageBrowser")
            .Thumbnail("Thumbnail", "ImageBrowser")
          )
          .HtmlAttributes(new { style = "width: 740px;height:440px" })
          .Tools(tools => tools
                    .ViewHtml()
                    .CustomButton(cb => cb.Name("new").ToolTip(Html.RawLocalized(GlobalMessageKeys.InsertTable).ToString()).Exec(@<text>
                function(e) {
                    $("#dialog-modal").dialog("open");
                }
                </text>))
               )
  )

视图模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace App.ViewModels
{
    public class ImageModel
    {
        public string name { get; set; }
        public string fullpath { get; set; }
    }
}

控制器:

[HttpPost]
        public ActionResult Upload2(string path, HttpPostedFileBase file)
        {
            try
            {
                UploadResource uploadRes = new UploadResource();
                uploadRes.Path = path;
                uploadRes.StreamFile = file.InputStream;
                uploadRes.Name = file.FileName;

                ServiceLocator.MaintenanceService.UploadResource(uploadRes);
            }

            catch (Exception)
            { 

            }

            return Content("");
        }

控制器类继承自作为DLL的EditorImageBrowserController,但我想自己上传和读取图像而不使用DLL,所以我在控制器中写了一个名为“Upload2”的新方法,它接收正确传递的文件和路径字符串,始终为null。我试图通过mvc kendo代码“.Image(Model.fullpath)”在视图中发送它,但没有,我还没有找到解决方案。

1 个答案:

答案 0 :(得分:1)

很抱歉,这对未来的googlers来说更多。

您可以创建自己的控制器,并使用类似的内容覆盖默认值。

 public class YourOwnImageBrowserController : EditorImageBrowserController
{
    //
    // GET: /YourOwnImageBrowserController/
    private const string contentFolderRoot = "~/images/yourfolder";
    public override string ContentPath
    {
        get
        {
            return contentFolderRoot;
        }
    }

}

然后在你的编辑中使用它。

   .Read("Read", "YourOwnImageBrowserController")
   .Create("Create", "YourOwnImageBrowserController")
   .Destroy("Destroy", "YourOwnImageBrowserController")
   .Upload("Upload", "YourOwnImageBrowserController")
   .Thumbnail("Thumbnail", "YourOwnImageBrowserController"))

Kendo库处理所有附加事件。