2016-12-25 5 views
0

У меня есть форма, что я определил с HTML код ниже:Получите ответ после отправки формы?

<form id="addUser" method="post" [email protected]("DefaultApi", new {controller = "User", action = "Add", httproute = "true"})> 

У меня также есть кнопка отправки:

<input type="submit" class="btn btn-primary" value="Add user" /> 

При нажатии на кнопку браузера перейти к апи URL, но я просто палочка получить значение от api и пропустить его в href на странице.

Как я могу это сделать?

+0

Вы можете сделать это через JQuery .. обратитесь к апи по нажатию кнопки в JQuery и получить возвращаемое значение из вашего API и обновить HREF ... –

ответ

0

сперва удалить теги формы и тип = представить в элемент ввода. Затем в JavaScript

$(button).click(function(){ 
$.ajax({ 
    type:'POST', 
    url:/api/User/Add or /User/Add 
    success: function(declare parameter that will contain value returned by api) 
    { 
    // update your href here using the above parameter 
    } 
}); 
}); 

Надеется, что это помогает ...

+0

вы не должны Рекомендуем удалить элемент формы. Что делать, если OP передает значения ввода формы в конечную точку API? Сохранение элемента формы также обеспечивает правильную подачу при отключении JS клиентом – Terry

+0

Нет необходимости удалять тип submit, добавлять событие.preventDefault(); ... –

+0

И URL-адрес должен быть завернут в "" –

0

Дополнения к Daniyals ответа, чтобы передать входные значения:

data={}; 
$("input").each(function(elem){ 
data[elem.name]=elem.value; 
}); 

Затем сделать АЯКС вызова со следующей строкой:

data:data, 
0

В соответствии с информацией, предоставленной вами по вопросу, я предполагаю, что конечная точка вашего веб-API принимает формировать данные и возвращать новый URL-адрес, на который должна перенаправляться ваша страница.

Вы можете использовать jQuery, чтобы захватить событие отправки формы, отправить данные с помощью ajax, и как только вы получите ответ от своего веб-ави (новый url), используйте это, чтобы установить новое значение location.href, чтобы браузер выдаст новый запрос GET.

Вы должны следить за тем, чтобы вы не допускали нормального поведения представления формы. Вы можете использовать метод jQuery preventDefault для этого.

$(function(){ 
    $("[type='submit']").click(function(e){ 
    e.preventDefault(); 
    var _formUrl=$(this).attr("action"); 
    //make the ajax call now. 
    //Build an object which matches the structure of our view model class 
    var model = { Name: "Shyju", Id: 123 }; 
    //update the above line with data read from your form. 
    $.ajax({ 
     type: "POST", 
     data: JSON.stringify(model), 
     url: _formUrl, 
     contentType: "application/json" 
    }).done(function(res) {  
     console.log('res', res); 
     // Do something with the result :) 
     window.location.href=res; 
    }); 

    }); 

}); 

Также обратите внимание на How to pass json POST data to Web API method as object

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