여기

2012-08-14 2 views
6

을 수행 내 문제 : 양식 viwemodel를 작성하는 서버에 보내는여기

[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); 
} 

후에는. 데이터를 저장 한 후에는 흐름이 DisplayCandidate 작업으로 리디렉션되고 페이지가 새로 고쳐지지 않습니다. 왜 그런지 모르겠다! 도와주세요.

+1

AJAX를 통해 게시 하시겠습니까? 클라이언트 측 코드를 보여줍니다. – RedFilter

+0

예. AJAX : 만약 (DataIsValid()) { $ 아약스 ({ URL "/ 후보 /하려면 addData" contentType이 "애플리케이션/JSON; 문자셋 = UTF-8" 데이터 : ko.toJSON (addCandidateCommonInfoViewModel) , 유형 : "POST", 데이터 유형 : 'json' }); } – Vengrovskyi

답변

7

당신은

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

와 아약스 포스트 방법에 아약스 포스트

을 사용하고 있기 때문에 :

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

이 새로운 작업에 소요되며 그 조치보기를 반환합니다.

+2

죄송합니다. 작동하지 않습니다. 뭔가를 놓친 것일까 요? – Vengrovskyi

+0

컨트롤러 AddData 메소드를 변경하여 가져 오십시오. – HaBo

+3

'windows.location (retURL)'을'location.replace (retURL)'로 바꾼다 도 수동 URL을 사용하지 않는다. 우리는'Url.Action ("DisplayCandidate", new {id = newCandidateId})' – Saito