2014-02-03 4 views
1

У меня есть huger веб-формы в моем приложении MVC. Когда я нажимаю кнопку «Сохранить», форма отправляется и значения сохраняются, а в конце я перенаправляюсь на ту же страницу/форму. Но он отображает всю форму, когда она уже загружена и не нужна. Как я могу избежать этого? Я хочу, чтобы кнопка SAVE вела себя так: сохраните все, кроме как продолжить, где я был.форму отправить и перенаправить на ту же страницу без рендера

Мой код контроллера:

[HttpPost] 
    [ValidateInput(false)] 
    public ActionResult FormCol(FormCollection collection) 
    { 
     ... 
     if (Request.Form["DocumentId"] != null) 
     { 
     ... 
     return RedirectToAction("FormCol", new { id = DocumentId }); 
    } 

Вид:

<input type="hidden" value="@document.Id" name="DocumentId" /> 

ответ

3

Вам нужно будет опубликовать форму с помощью Ajax/JQuery:

$.ajax({ 
    url: '/someController/FormCol?variable1=' + $("#input1").val() + '&variable2=' + $("#input2").val(), 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (data) { 
     alert(data); //This is where you would do something based upon a successful save, such as alerting the user to their new document ID or something. 
    }, 
    error: function() { 
     alert("error"); //This is where you know that your save failed. 
    } 
}); 

И изменить ваше возвращение действий контроллера JSon :

public JsonResult FormCol(string variable1, string variable2) 
    { 
     //do saving stuff here 
     return Json(new { id = DocumentId }); 
    } 
+0

Пробовал, но он не запускает мой/Контроллер/Действие. – AAlferez

+0

Чтобы еще больше диагностировать вашу проблему, вы можете показать HTML-форму формы, которую вы пытаетесь отправить, а также любой Javascript, который вы используете на странице? –

+0

это был data.success.Now есть другая проблема, проверьте мой обновленный код, когда я делаю запрос на контроллере, он падает, говоря, что он не может deserialize – AAlferez

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