2015-12-30 2 views
2

** EDIT: ** У меня есть форма с кнопкойКнопки с подлинником отправкой постбэк со значениями после второго нажмите

@Html.Hidden("id", Model.DutyID) 
@Html.Hidden("godzina", Model.godzina) 
... 
<div id="years" class="btn-group"> 
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Wybierz cel spotkania</button> 
        <ul class="dropdown-menu"></ul> 
       </div> 
... 
<div id="months" class="btn-group"> 
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Wybierz stopień</button> 
        <ul class="dropdown-menu"></ul> 
       </div> 
... 
<div id="days" class="btn-group"> 
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Wybierz opiekuna</button> 
        <ul class="dropdown-menu"></ul> 
       </div> 
... 
    <button class="btn btn-default" id="confirm" type="button">Umów</button> 

, а затем я сценарий связанного приложением с помощью этой кнопки

$("#confirm").click(function() { 
    var request = { 
     id: $('#id').val(), 
     godzina: $('#godzina').val(), 
     cel: $("#years button").text(), 
     stopien: $("#months button").text(), 
     opiekun: $("#days button").text() 
    }; 
    $.post("UmawianieSpotkania", request, function (response) { 
    }); 
}); 

И проблема была ...

 [HttpPost] 
    public ActionResult UmawianieSpotkania(string cel, string stopien, string opiekun, string id, DateTime godzina) 
      { 
        ... 
       return RedirectToAction("Index", "Home"); 
       } 

Проблема была ... Мой пост делает только один раз и принимать значения «cel» «stopien» «opiekun» как null, но ... если я нажал второй или несколько раз во время выполнения первого ActionResult (при просмотре точек останова), эта почта будет выполняться несколько раз со значениями, которые я хотел выполнить.

, но я добавил тип = "кнопка" спасибо @Ubiquitous разработчиков и теперь он работает

но теперь в ActionResult (...)

return RedirectToAction("Index", "Home"); 

... не работает

+0

Как выглядит ваша разметка HTML, в частности значения, которые вы используете для создания объекта js запроса. – Shyju

+0

Это должно работать даже в первый раз. – Shyju

+0

** EDIT: ** я изменил кнопку '<кнопка класса =«Кнопка»«БТН БТН-умолчанию»ID = тип«Подтвердить»=> Umów' и теперь мой ActionResult получить все значения в первый раз, но не RedirectToAction '[HttpPost] public ActionResult UmawianieSpotkania (...) { ... return RedirectToAction (" Index "," Controller "); } ' – wilkuhaze

ответ

0

Дают кнопочного типа как кнопка

<button class="btn btn-default" id="confirm" type="button">Umów</button> 

, если вы не даете типа как кнопки, она будет работать как подать. поэтому вы отправляете форму дважды, по js и форме

+0

ОК, после нажатия кнопки у меня есть все значения, как я хочу, но ... :) в ActionResult (...) {... return RedirectToAction («Index», «Controller»); } У меня есть перенаправление, которое не работает сейчас. любая помощь? – wilkuhaze

+0

, так что вы хотите перенаправить на индекс действие контроллера в конце действия UmawianieSpotkania? –

+0

да! :) он работает тогда, но не сейчас (?) – wilkuhaze

0

Это нормальное поведение, вы нажимаете кнопку x раз, вы получаете действие, называемое x раз. Вы должны отключить кнопку в обработчике OnClick и включить ее, когда сообщение будет успешным или завершится с ошибкой.

$("#confirm").click(function() { 
    ... 

    this.prop("disabled", true); 

    $.post(... 
}); 
+0

Но моя проблема в том, что я только хочу выполнить его, как во второй раз. этот первый раз не дал ожидаемого результата, потому что мне нужно иметь все значения из формы. второй раз и в другие моменты - это мой необходимый результат, но этот первый пост не работал, как я хочу. – wilkuhaze

+0

@wilkuhaze Тогда я не понял ваш вопрос в первую очередь. Пожалуйста, отредактируйте свой вопрос и покажите нам более html-код, особенно код, включая элементы, на которые вы ссылаетесь. – ViRuSTriNiTy

Смежные вопросы