我需要找到一种动态启用或禁用Kendo上传的方法:
@(Html.Kendo().Upload()
.Enable(false)
.Name("attachments_" + item.QuestionId)
.ShowFileList(true)
.TemplateId("fileTemplate")
.Async(a => a
.Save("SaveAttachment", "Attachment", new { evaluationId = ViewBag.EvaluationId, questionId = item.QuestionId })
.Remove("RemoveAttachment", "Attachment", new { evaluationId = ViewBag.EvaluationId, questionId = item.QuestionId })
.AutoUpload(true)
)
.Files(files =>
{
if ((IList<dynamic>)ViewData["Attachment_" + item.QuestionId] != null)
{
foreach (var f in (IList<dynamic>)ViewData["Attachment_" + item.QuestionId])
{
files.Add().Name(f.Name).Extension(f.Extension).Size(f.Size);
}
}
})
)
我该怎么做?
我尝试将.Enable设置为:
.Enable(bool.Parse(ViewBag.AllowEdit))
它引发了一个错误:
>'/'应用程序中的服务器错误。 编译错误 描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并适当修改源代码。编译器错误消息:CS1977:在没有首先将其转换为委托或表达式树类型的情况下,不能将lambda表达式用作动态调度操作的参数
来源错误:
第95行:.ShowFileList(true) 第96行:.TemplateId(“fileTemplate”) 第97行:.Async(a =&gt; a 第98行:。保存(“SaveAttachment”,“附件”,新{evaluationId = ViewBag.EvaluationId,questionId = item.QuestionId}) 第99行:。删除(“RemoveAttachment”,“Attachment”,new {evaluationId = ViewBag.EvaluationId,questionId = item.QuestionId})
有更简单的方法吗?
答案 0 :(得分:2)
首先投射ViewBag变量。
.Enable(bool.Parse((字符串)ViewBag.AllowEdit))
答案 1 :(得分:1)
使用Kendo上传控件需要注意的一点是,即使禁用了用户,用户仍然可以将文件拖放到其上。有一种方法可以始终禁用拖放:kendo forum
我没有尝试这种解决方法,因为我想在启用控件时允许它。