Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Javascript 使用@Ajax.BeginForm()生成AntiforgeryToken_Javascript_Asp.net Mvc_Asp.net Ajax_Csrf - Fatal编程技术网

Javascript 使用@Ajax.BeginForm()生成AntiforgeryToken

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()*@ 月份: @人员配备总部发布日期 计数: @曼宁大学总部 位置: @人员配备\总部位置\姓名 招聘情况: 选

我在ajax方法中手动生成防伪令牌时遇到了一个问题。所以我的问题是,如果我使用ajax.beginform(),它是否会生成一个像@html.beginform这样的令牌?如果是这样,我如何将其与ajax方法结合使用

请忽略视图中的长代码。我主要关心的是ajax方法。我发布它是为了向您展示使用beginForm()的建议时的视图

@*@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>
}