使用 Kendo MVC 上传控件将 Javascript/html 变量作为参数传递

Posted

技术标签:

【中文标题】使用 Kendo MVC 上传控件将 Javascript/html 变量作为参数传递【英文标题】:Pass Javascript/html Variable as Parameter with Kendo MVC upload control 【发布时间】:2017-08-05 07:25:24 【问题描述】:

需要从 javascripthtml 字段中传递具有参数集值的附加参数。

在下面的示例中,我如何将 HTML 元素值或 Javascript 变量值传递给 uploadID

注意:在这个地方使用 ViewModel 有限制。

@(Html.Kendo().Upload()
    .Name("files")
    .Async(a => a
        .Save("Save", "Upload", new  uploadID = "XXX" )
        .Remove("Remove", "Upload")
        .AutoUpload(true)
    )
)

【问题讨论】:

您遇到错误了吗?似乎是什么问题? 需要获取JavaScript变量值来代替“XXX”,因为这个控制器在服务器标签@()中,不能直接赋值。有没有办法获取 XXX 的 HTML 隐藏字段的值 【参考方案1】:

试试这个:

@(Html.Kendo().Upload()
    .Name("files")
    .Async(a => a
        .Save("Save", "Upload")
        .Remove("Remove", "Upload")
        .AutoUpload(true)
    )
    .Events(e => e
        .Upload(@<text>
            function(e)     
                e.data =  uploadID: your_js_variable ;
            
        </text>)
    )
)

【讨论】:

谢谢。能够通过这个传递值并获得控制器。 需要其他帮助。为 e.data 分配的 JS 变量设置为页面加载时设置的初始值,而不反映稍后在 html 中设置的更新值。有什么方法可以刷新 Kendo Upload Controller 以考虑最新值 这很有趣——我原以为每次启动上传时 Kendo 都会获取值。也许尝试传入一个函数(我以前从未尝试过,所以不确定是否可行)? e.data = uploadID: func_that_calculates_value() ;您可能需要创建一个新问题,因为将所有内容都放在 cmets 区域中有点困难。【参考方案2】:

另一种方式:

@Html.Kendo().Upload().Name("files").Async(a => a
.Save("Async_Save", "ActionCtl")
.Events(events => events.Upload("onUpload")))

<script>
function onUpload(e) 
                    e.data =  ItemBankId: @Model.ItemID ;
                
</script>

【讨论】:

以上是关于使用 Kendo MVC 上传控件将 Javascript/html 变量作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章

在 MVC 中控制 Kendo 脚本位置渲染

javascript MVC 4的kendo UI datepicker验证

Telerik Kendo UI ASP.NET MVC Grid - 已保存数据项的事件处理

Kendo DropdownList MVC在读取成功时绑定JS函数

如何使用以前上传的文件填充 Kendo Upload

Asp.Net MVC 应用程序的 Kendo UI 与 Jquery/Bootstrap 设计决策