Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从向web api发布数据和文件的客户端检测到潜在危险的请求。表单值_C#_Angularjs_Asp.net Web Api - Fatal编程技术网

C# 从向web api发布数据和文件的客户端检测到潜在危险的请求。表单值

C# 从向web api发布数据和文件的客户端检测到潜在危险的请求。表单值,c#,angularjs,asp.net-web-api,C#,Angularjs,Asp.net Web Api,我有一个表单,用于将数据和文件发布到webapi端点。其中一个数据字段是使用summernote插件的RichTextField 发布到端点的angularjs脚本如下所示: $scope.transaction = {}; var files = $scope.myFile; var fd = new FormData(); angular.forEach(files, function (value, key) { fd.append("file" + key, value[0])

我有一个表单,用于将数据和文件发布到
web
api
端点
。其中一个数据字段是使用
summernote
插件的
RichTextField

发布到
端点的
angularjs
脚本如下所示:

$scope.transaction = {};
var files = $scope.myFile;
var fd = new FormData();

angular.forEach(files, function (value, key) {
    fd.append("file" + key, value[0]);
});

fd.append("fileContent", JSON.stringify({ fileContent: $scope.transaction }));

dataService.uploadFile(baseAddress + "/Generate", fd)
.success(function (data) {}).error(function (data) {  });
  [HttpPost]
    public async Task<IHttpActionResult> Generate()
    {
        try
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

           var contentResult = System.Web.HttpContext.Current.Request.Form;                
           var key = contentResult.AllKeys[0];
           var val = contentResult.GetValues(key)[0];
接受请求的端点如下所示:

$scope.transaction = {};
var files = $scope.myFile;
var fd = new FormData();

angular.forEach(files, function (value, key) {
    fd.append("file" + key, value[0]);
});

fd.append("fileContent", JSON.stringify({ fileContent: $scope.transaction }));

dataService.uploadFile(baseAddress + "/Generate", fd)
.success(function (data) {}).error(function (data) {  });
  [HttpPost]
    public async Task<IHttpActionResult> Generate()
    {
        try
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

           var contentResult = System.Web.HttpContext.Current.Request.Form;                
           var key = contentResult.AllKeys[0];
           var val = contentResult.GetValues(key)[0];
我试过这个:

[System.Web.Http.HttpPost, System.Web.Mvc.ValidateInput(false)]


您必须允许html标记,因为summernote数据包含它们。要做到这一点,您需要添加到您的方法中


您可能需要进行一些修补,因为它可以非常轻松地执行xss和其他操作。

尝试添加到您的web.config@J.Loscos,因为它不起作用。我试图重现您的错误,但在我的机器上就可以做到这一点。我不知道为什么它对您不起作用。您使用的IIS、.NET和ASP.NET版本是什么?IIS express、.NET 4.5.2AllowHtml是要在模型上使用的属性属性。因此,他需要在控制器操作中添加一个模型parameter@J.Loscos啊,你当然是对的。我已经有一段时间没有使用它了。@TestzWCh我知道AllowtmlatAttribute。发生错误的点不在模型的强制转换点。