我在使用ajax的AntiForgeryToken遇到了麻烦.我正在使用ASP.NET MVC 3.我在jQuery Ajax调用和Html.AntiForgeryToken()中尝试了解决方案.使用该解决方案,现在正在传递令牌:
var data = { ... } // with token, key is '__RequestVerificationToken'
$.ajax({
type: "POST",
data: data,
datatype: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
url: myURL,
success: function (response) {
...
},
error: function (response) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
当我删除[ValidateAntiForgeryToken]属性只是为了查看数据(带有令牌)是否作为参数传递给控制器时,我可以看到它们正在被传递.但由于某种原因,A required anti-forgery token was not supplied or was invalid.当我放回属性时,消息仍会弹出.
有任何想法吗?
编辑
antiforgerytoken是在表单中生成的,但我没有使用提交操作来提交它.相反,我只是使用jquery获取令牌的值,然后尝试ajax发布.
这是包含令牌的表单,位于顶部母版页:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>
Run Code Online (Sandbox Code Playgroud) 这是问题所在:
我有2个数据上下文,我想加入.现在我知道LINQ不允许从一个上下文到另一个上下文的连接,我知道2个可能的解决方案是创建单个datacontext或者有2个单独的查询(这就是我现在正在做的事情).但是,我想要做的是"模拟"一个连接.
这是我尝试过的.
using (var _baseDataContext = Instance)
{
var query = from a in _baseDataContext.Account.ACCOUNTs
where a.STR_ACCOUNT_NUMBER.ToString() == accountID
join app in _baseDataContext.Account.APPLICATIONs on a.GUID_ACCOUNT_ID equals
app.GUID_ACCOUNT
join l in GetLoans() on app.GUID_APPLICATION equals l.GUID_APPLICATION
select l.GUID_LOAN;
return query.Count() > 0 ? query.First() : Guid.Empty;
}
private static IQueryable<LOAN> GetLoans()
{
using (var _baseDataContext = Instance)
{
return (from l in _baseDataContext.Loan.LOANs
select l).AsQueryable();
}
}
Run Code Online (Sandbox Code Playgroud)
在运行时我得到了
System.InvalidOperationException:查询包含对在不同数据上下文中定义的项的引用
编辑:
工作方案:
using (var _baseDataContext = Instance)
{
var query = …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习F#,并且正在将一些C#代码转换为F#.
我有以下C#方法:
public async Task<Foo> GetFooAsync(byte[] content)
{
using (var stream = new MemoryStream(content))
{
return await bar.GetFooAsync(stream);
}
}
Run Code Online (Sandbox Code Playgroud)
bar一些私人领域在哪里并GetFooAsync返回一个Task<Foo>.
这如何转化为F#?
这是我目前拥有的:
member public this.GetFooAsync (content : byte[]) =
use stream = new MemoryStream(content)
this.bar.GetFooAsync(stream)
Run Code Online (Sandbox Code Playgroud)
哪个返回一个Task.
我正在使用AngularJS 1.1.5并使用daneden的animate.css尝试ng-animate指令.我使用路由设置了几个视图.我正在使用Twitter Bootstrap 3 RC1.
这是ng-view的代码:
<div class="container" ng-view ng-animate="{enter:'animated fadeInRightBig', leave:'animated fadeOutLeft'}"></div>
Run Code Online (Sandbox Code Playgroud)
这是路由部分:
$routeProvider
.when('/', {
templateUrl: '/Home/Home',
title: 'Home'
})
.when('/Home/Home', {
templateUrl: '/Home/Home',
title: 'Home'
})
.when('/Home/About', {
templateUrl: '/Home/About',
title: 'About'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(false).hashPrefix('!');
Run Code Online (Sandbox Code Playgroud)
动画有效(也就是说,我看到了动画效果),视图也发生了变化.
我遇到麻烦的是,"离开"视图似乎仍在占用空间,而"进入"视图正在制作动画.
结果是新视图的输入动画发生在离开视图先前占用的空间之下.这就好像旧视图仍然存在,即使它已经"动画化"了.一旦动画结束,新视图突然猛然移动到正确的位置.我正在使用fadeInRightBig进行输入,使用fadeOutLeft进行离开.
怎么解决这个问题?预期的结果是没有抖动的平滑过渡,就像这里幻灯片1到3中ng-switch的动画一样.(当然,我正在使用ng-view.)
谢谢!
我把它取回来,当'enter'动画正在运行时,'leave'动画还没有完全结束.
所以我想我的问题会有所改变..但预期的结果是一样的.如何实现平滑的"滑动"效果?
我正在尝试制作一个应用程序来测试 Discord 邀请链接并检查它们是否无效或有效。但是,我不知道该怎么做。
c# ×2
ajax ×1
angularjs ×1
asp.net ×1
asp.net-mvc ×1
c#-to-f# ×1
csrf ×1
datacontext ×1
discord ×1
f# ×1
linq ×1
ng-animate ×1