İşte

2012-08-14 30 views
6

yapılır benim problem: Form viwemodel dolum sunucuya gönderirİşte

[HttpPost] 
public ActionResult AddData(CandidateViewModel viewModel) 
{ 
    var newCandidateId = 0; 
    newCandidateId = this._serviceClient.AddCandidate(viewModel); 
    return RedirectToAction("DisplayCandidate",new {id=newCandidateId}); 
} 

public ActionResult DisplayCandidate(int id) 
{ 
    var candidateViewModel= this._serviceClient.GetCandidate(id); 
    return View(candidateViewModel); 
} 

sonra. Veri saklandıktan sonra akış DisplayCandidate eylemine yönlendirilir ve oraya gider ancak sayfa yenilenmedi. Nedenini anlamıyorum! Yardım lütfen.

+1

AJAX üzerinden mi gönderiyorsunuz? Müşteri tarafı kodunu göster. – RedFilter

+0

evet. AJAX: Eğer (DataIsValid()) { $ .ajax ({ URL: "/ Aday/AddData", contentType: "uygulama/json; charset = UTF-8", veriler: ko.toJSON (addCandidateCommonInfoViewModel) , tip: "POST", veri Türü: 'json' }); } – Vengrovskyi

cevap

7

Eğer

public ActionResult AddData(CandidateViewModel viewModel) 
{ 
    var newCandidateId = 0; 
    newCandidateId = this._serviceClient.AddCandidate(viewModel); 
    string ReturnURL = "/DisplayCandidate/"+newCandidateId; 
    return JSON(ReturnURL); 
} 

ve Ajax Mesaj Yönteminde Ajax Yayınla

kullanmakta olduğunuz için:

Onsuccess(function(retURL){ window.location(retURL); }) 

Bu yeni Eylem alacak ve bu Eylem Görünüm dönecektir.

+2

Üzgünüz, ama çalışmıyor. Bir şey özlüyor musun? – Vengrovskyi

+0

, denetleyici AddData yöntemini değiştirmek için değiştirin. – HaBo

+3

, 'windows.location (retURL)' yerine 'location.replace (retURL)' ile de hiçbir zaman el ile kullanmayın Url contructing, us 'Url.Action (" DisplayCandidate ", yeni {id = newCandidateId})' – Saito