0

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

看法:

@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”的新方法,该方法接收正确传递的文件和路径字符串始终为空。我试图通过视图中的 mvc kendo 代码“.Image(Model.fullpath)”发送它,但什么也没有,我还没有找到解决方案。

4

1 回答 1

1

抱歉迟到了,这更适合未来的谷歌人。

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

 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 库处理所有附加的事件。

于 2013-08-12T22:49:07.537 回答