Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# 从POST返回的行版本数据无效base64_C#_Asp.net Mvc_Base64 - Fatal编程技术网

C# 从POST返回的行版本数据无效base64

C# 从POST返回的行版本数据无效base64,c#,asp.net-mvc,base64,C#,Asp.net Mvc,Base64,我正在将Rowversion数据发送到我的视图,以便测试更新/删除SQL Server记录的并发性问题。记录中的Rowversion数据是字节[],必须将其转换为Base64字符串才能序列化。这是由我的ViewModel中的getter完成的。setter正在将返回的Base64数据转换回字节[]。(我认为这是处理SQL Server版本数据时的标准做法。) 我的模型是 public byte[] RowVersionId { get; set; } public string

我正在将Rowversion数据发送到我的视图,以便测试更新/删除SQL Server记录的并发性问题。记录中的Rowversion数据是字节[],必须将其转换为Base64字符串才能序列化。这是由我的ViewModel中的getter完成的。setter正在将返回的Base64数据转换回字节[]。(我认为这是处理SQL Server版本数据时的标准做法。)

我的模型是

    public byte[] RowVersionId { get; set; }
    public string RowVersionIdBase64
    {
        get
        {
            if (this.RowVersionId != null)
            {
                return Convert.ToBase64String(this.RowVersionId);
            }
            return string.Empty;
        }
        set
        {
            if (string.IsNullOrEmpty(value))
            {
                this.RowVersionId = null;
            }
            else
            {
                this.RowVersionId = Convert.FromBase64String(value);
            }

        }
    }
Post导致错误“输入不是有效的Base-64字符串,因为它包含非Base-64字符、两个以上的填充字符或填充字符中的非法字符。”

Firebug显示的Post参数是…(此处仅显示了相关数据-抱歉,这样会稍微破坏布局)

。。。 RowVersionIdBase64
aaaaaaf3e= RowVersionId[]
0 RowVersionId[]
0 RowVersionId[]
0 RowVersionId[]
0 RowVersionId[]
0 RowVersionId[]
0 RowVersionId[]
23 RowVersionId[]
113

帖子来源是…(此处显示完整的帖子数据)

房地产ID=1&RateFromDate=Sat+Apr+15+2017+00%3100%3100+GMT%2B1000+(澳大利亚+东部+标准+时间)&RateToDate =Sat+Apr+15+2017+00%3A00%3A00+GMT%2B1000+(澳大利亚+东部+标准+时间)&RateName=fff&RateComment=&MinimumStay =1&WeekRate=0&WeekendRate=&WeekEndNightRate=150&MidweekNightRate=100&MonthRate=0&FullPeriodRate=0&Cancelled =false和DateCreated=Thu+Apr+14+2016+07%3A57%3A16+GMT%2B1000+(澳大利亚+东部+标准+时间)和DateCancelled =&RowVersionId%5B%5D=0&RowVersionId%5B%5D=0&RowVersionId%5B%5D=0&RowVersionId%5B%5D=0&RowVersionId%5B%5D=0&RowVersionId%5B %5D=0&RowVersionId%5B%5D=0&RowVersionId%5B%5D=23&RowVersionId%5B%5D=113&RowVersionIdBase64=aaaaaaaaaaa F3E%3D&Id=7

它有什么问题,我如何修复它


谢谢。

此错误的一个可能原因是两个html输入具有相同的名称。

此错误的一个可能原因是两个html输入具有相同的名称。

--rowvers在表中定义为时间戳

选择顶部(100) 罗弗斯, (为XML路径(“”)选择CAST(rowversas varbinary(max)),二进制BASE64) 从…起 [hpodb].[dbo].[mytable]

再施放一次以不中断SSMS导出

选择顶部(100) 罗弗斯, 强制转换((选择XML路径(“”)的强制转换(rowversas varbinary(max)),选择BINARY BASE64作为varchar) 从[hpodb].[dbo].[mytable]

——rowvers被定义为表中的时间戳

选择顶部(100) 罗弗斯, (为XML路径(“”)选择CAST(rowversas varbinary(max)),二进制BASE64) 从…起 [hpodb].[dbo].[mytable]

再施放一次以不中断SSMS导出

选择顶部(100) 罗弗斯, 强制转换((选择XML路径(“”)的强制转换(rowversas varbinary(max)),选择BINARY BASE64作为varchar)
在[hpodb].[dbo].[mytable]

中,我注释掉了ViewModel中的setter,因为我确信在那里发生了错误,但仍然会发生相同的错误。那么我应该去哪里寻找呢?我的ViewModel中的RowVersionId似乎是个问题。我把它注释掉了(还有整个RowVersionIdBase64,而不是像上面那样注释掉setter),错误就消失了。你找到原因和解决方案了吗?我在ViewModel中注释掉了setter,因为我确信错误发生在那里,但同样的错误仍然发生。那么我应该去哪里寻找呢?我的ViewModel中的RowVersionId似乎是个问题。我把它注释掉了(还有整个RowVersionIdBase64,而不是像上面那样注释掉setter),错误就消失了。你找到原因和解决方案了吗?