【发布时间】:2017-02-21 10:53:09
【问题描述】:
我正在尝试将从图像生成的 Base64 字符串传递回我的控制器。我的视图上有一个隐藏的输入字段,它绑定到我的视图模型上的一个属性。但是,当我将视图模型返回到我的控制器时,PhotoPath 属性显示为 null。
不确定数据未绑定的原因。我使用 Javascript 来设置 PhotoPath 输入的值:
$("#fileChooser").change(function(){
if (this.files && this.files[0]){
var reader = new FilerReader();
reader.onload = function (e) {
$("#PhotoPath").val(e.target.result);
}
reader.readAsDataURL(this.files[0]);
}
});
这是我的输入框:
@Html.HiddenFor(d => d.PhotoPath)
ViewModel 属性:
public string PhotoPath { get; set; }
如果我在 EditorFor 中传递一个常规字符串,它就可以很好地传递给控制器。不太确定问题是什么。任何帮助将不胜感激!
编辑:这包含在 Kendo ListView 的模板中,如果它提供更多上下文的话。
编辑2:这是我设置照片后的检查员:
【问题讨论】:
-
您确定您的 js 代码为输入字段设置了正确的值吗?
-
@Shyju 我设置图片后刚刚添加了检查员的图片。它似乎设置正确
-
您的输入是否在提交的表单中?
-
尝试将 PhotoPath 视图模型属性注释为 [必需]。我现在不明白原因,但过去对我有帮助。
-
@Shyju 是的,正在ListView的Update函数上提交。如果我将
@Html.HiddenFor设置为@Html.EditorFor并提交一个随机字符串,它就可以正常工作
标签: javascript c# asp.net razor controller