чтение значений тела запроса ajax по имени с помощью контроллера действий asp.net mvc 5

я хочу получить доступ к телу почтового запроса jquery ajax, чтобы получить значение в моем действии контроллера asp.net mvc 5. зная, что я успешно передаю __RequestVerificationToken.

<script>
$(document).ready(
       function () {
           $("#renamedashboard").click(function () {
               swal({
                   title: "Titre Dashboard",
                   text: "Saisir le nouveau titre:",
                   type: "input",
                   showCancelButton: true,
                   closeOnConfirm: false,
                   animation: "slide-from-top",
                   inputType : "text"
               },
               function (inputValue)
               {
                   if (inputValue === false)
                       return false;
                   if (inputValue === "")
                   {
                       swal.showInputError("You need to write something!");
                       return false
                   }
                   alert(inputValue);
                   var form = $('#__AjaxAntiForgeryForm');
                   //form.append('<input type="hidden" name="name" value=' + inputValue + ' />');
                   var token = $('input[name="__RequestVerificationToken"]', form).val();
                   $.ajax({
                       url: ($(this).data('url')),// i tried to do ($(this).data('url'))+'?name='+inputValue but i got undefined id
                       type: "POST",
                       data: {
                           name: inputValue,
                           __RequestVerificationToken: token
                       },
                       success: SuccessCallback,
                       error: FailureCallback
                   });
               });
               function SuccessCallback(data) {
                   swal({
                       title: "Opération réussie",
                       type: "success"

                   }, function () {
                       NProgress.done();
                       location.reload();
                   });
               }
               function FailureCallback(data) {
                   swal("Good job!", "You clicked the button!", "error");
                   NProgress.done();
               }

           });});

вот мой контроллер

        [HttpPost]
    [ValidateAntiForgeryToken]
    // POST: Dashboard/Rename/5
    public async Task<ActionResult> Rename(int id,[System.Web.Http.FromBody] string name)
    {
        Dashboard dashboard = await dbs.Dashboards.FindAsync(id);
        //dashboard.Visible = true;
        dashboard.TitreD = name.ToString();
        dbs.Entry(dashboard).State = EntityState.Modified;
        await dbs.SaveChangesAsync();
        return Json(new { success = true });
    }

у меня есть скрытая форма в моем представлении

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "__AjaxAntiForgeryForm" })){
@Html.AntiForgeryToken()
}

содержание тела:
name|test
__RequestVerificationToken|токен


person Dali Gharbi    schedule 13.04.2015    source источник


Ответы (1)


Исправлена ​​​​моя проблема, заключавшаяся в том, что ($(this).data('url')) не дает правильный URL-адрес, потому что он не ссылается на $("#renamedashboard"), у которого есть правильный URL-адрес.

    <a id="renamedashboard" href="#" [email protected]("Rename", "Dashboard",new {id=activedashboard.Idd}) >
person Dali Gharbi    schedule 13.04.2015
comment
Я не понимаю, что ты сказал так -1 - person Sn0opr; 15.04.2015