我尝试通过下面的html页面代码向控制器发送antiforgerytoken和yeniTest填充了一些数据(不为null)。
var token = document.querySelector('input[name="__RequestVerificationToken"]').value;
$.ajax({
url: '@Url.Action("/TestCevabı")',
type: 'post',
data: { __RequestVerificationToken: token, yeniTest: JSON.stringify(yeniTest)},
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
traditional: true
});
控制器方法如下
[HttpPost]
[ValidateAntiForgeryToken]
public bool TestCevabı(Test yeniTest)
{
///
}
我在控制器方法处传递ValidateAntiForgeryToken。但是在TestCevabı方法处的yeniTest为空。
答案 0 :(得分:0)
我如下更改了控制器方法。
[HttpPost]
[ValidateAntiForgeryToken]
public bool TestCevabı(string yeniTest)
{
///
}
并将以下代码添加到TestCevabıService
Test çözülenTest = new Test();
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(testJsonFormat)))
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(çözülenTest.GetType());
çözülenTest = ser.ReadObject(ms) as Test;
ms.Close();
}
现在已完成antforgerytoken通行证并填充了测试对象