Javascript 使用@Ajax.BeginForm()生成AntiforgeryToken
我在ajax方法中手动生成防伪令牌时遇到了一个问题。所以我的问题是,如果我使用ajax.beginform(),它是否会生成一个像@html.beginform这样的令牌?如果是这样,我如何将其与ajax方法结合使用 请忽略视图中的长代码。我主要关心的是ajax方法。我发布它是为了向您展示使用beginForm()的建议时的视图Javascript 使用@Ajax.BeginForm()生成AntiforgeryToken,javascript,asp.net-mvc,asp.net-ajax,csrf,Javascript,Asp.net Mvc,Asp.net Ajax,Csrf,我在ajax方法中手动生成防伪令牌时遇到了一个问题。所以我的问题是,如果我使用ajax.beginform(),它是否会生成一个像@html.beginform这样的令牌?如果是这样,我如何将其与ajax方法结合使用 请忽略视图中的长代码。我主要关心的是ajax方法。我发布它是为了向您展示使用beginForm()的建议时的视图 @*@Html.AntiForgeryToken()*@ 月份: @人员配备总部发布日期 计数: @曼宁大学总部 位置: @人员配备\总部位置\姓名 招聘情况: 选
@*@Html.AntiForgeryToken()*@
月份:
@人员配备总部发布日期
计数:
@曼宁大学总部
位置:
@人员配备\总部位置\姓名
招聘情况:
选择状态
@foreach(TBL\U招聘状态rec处于招聘状态)
{
@记录状态\名称
}
发布员工申请:
认可的
拒绝
拒绝评论:
接近
拯救
var DecesionCheck=false;
var拒绝=错误;
var原因=错误;
$(文档).ready(函数(){
$('input[type=radio][name=Decision]')。更改(函数(){
if($(“输入[name='Decision']:选中”).val()=='Accepted'){
$('#RejComment').hide();
$(“#保存决策”).show();
拒绝=正确;
}
if($(“输入[name='Decision']:已选中”).val()=='Rejected'){
$('#RejComment').show();
$(“#保存决策”).show();
拒绝=正确;
}
});
});
函数saveDecision(ID){
var Decision=$('input[name=Decision]:checked').val();
变量原因=$(“#招聘状况”).val();
//var-token=$(“[name=”\uuu-RequestVerificationToken']”).val();
如果(偏差=“#u 123”){
if(DecesionCheck==true){
var Decision=$('input[name=Decision]:checked').val();
var optionalcoment=$('#optionalcoment').val();
$.ajax({
键入:“POST”,
url:“/员工申请\总部/招聘\行动”,
数据:{
//\uuuu RequestVerificationToken:令牌,
问题工作人员ID:ID,
记录状态标识:原因,
OpComment:保留注释,
决定:决定,
},
成功:功能(结果){
$('#DescionDetailsPOPUP').modal('hide');
location.reload();
},
失败:函数(xhr、textStatus、errorshown){
警报(“请求失败”);
}
});
}
}
否则{
var Decision=$('input[name=Decision]:checked').val();
var RetainedComment=$(“#RetainedComment”).val();
$.ajax({
键入:“POST”,
url:“/员工申请\总部/招聘\行动”,
数据:{
//__RequestVerificationToken:令牌,
问题工作人员ID:ID,
记录状态标识:原因,
注释:保留注释,
决定:决定,
},
成功:功能(结果){
$('#DescionDetailsPOPUP').modal('hide');
location.reload();
},
失败:函数(xhr、textStatus、errorshown){
警报(“请求失败”);
}
});
}
}
以下是我的一个视图中的Ajax.BeginForm
示例:
<!-- FORM Atributo -->
@using (Ajax.BeginForm(accionFormulario, "Atributos", new AjaxOptions() { OnSuccess = "onSuccessCreate" }, new { @id = "frmCreate" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.AtributoId)
@Html.HiddenFor(model => model.EmpresaId)
<div class="modal-body">
<div class="row">
// the form inputs ....
</div>
</div>
<div class="modal-footer">
<button class="btn btn-secondary mx-1" type="button" data-dismiss="modal" aria-label="Close">@Global.Cancelar</button>
<button class="btn btn-primary" type="submit"><strong>@Global.Guardar</strong></button>
</div>
}
@使用(Ajax.BeginForm(accionFormulario,“Atributos”,new AjaxOptions(){OnSuccess=“onSuccessCreate”},new{@id=“frmCreate”}))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.AtributoId)
@Html.HiddenFor(model=>model.EmpresaId)
//表格输入。。。。
@全球取消
@Global.Guardar
}
这将按预期生成AntiForgeryToken:
您可以像在视图中那样使用javascript捕获它
<!-- FORM Atributo -->
@using (Ajax.BeginForm(accionFormulario, "Atributos", new AjaxOptions() { OnSuccess = "onSuccessCreate" }, new { @id = "frmCreate" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.AtributoId)
@Html.HiddenFor(model => model.EmpresaId)
<div class="modal-body">
<div class="row">
// the form inputs ....
</div>
</div>
<div class="modal-footer">
<button class="btn btn-secondary mx-1" type="button" data-dismiss="modal" aria-label="Close">@Global.Cancelar</button>
<button class="btn btn-primary" type="submit"><strong>@Global.Guardar</strong></button>
</div>
}