ASP.NET - 将Razor视图中的Base64字符串传递给控制器​​

时间:2016-10-12 15:01:24

标签: javascript c# asp.net razor controller

我正在尝试将从图像生成的Base64字符串传递回我的控制器。我的视图上有一个隐藏的输入字段,它绑定到我的视图模型上的属性。但是,当我将视图模型返回到我的控制器时,PhotoPath属性显示为null。

enter image description here

不确定为什么数据没有绑定。我使用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:这是我设置照片后的检查员:

enter image description here

1 个答案:

答案 0 :(得分:0)

您不能使用@Html或其他html帮助器。因为html助手是一次工作(页面加载时)。由于剃须刀在页面加载后不起作用。您应该使用标准输入类型:隐藏。

相关问题