2012-07-26 6 views
0

다음과 같이 정의 된 양식이 있습니다.보기에서 컨트롤러로 데이터 전달 문제

function DetailPage() { 
    var rol = $('#keyid').val(); 
    $('#frmPRoll').attr('action', '/Proll/DetailPage/'+rol).submit(); 
} 

컨트롤러 DetailPage 작업 방법에서 -a Keyid 키 ID 값에 allways 널 따를

<% using (Html.BeginForm("PRoll", "Payroll", FormMethod.Post, new { @id = "frmPRoll" })){%> 

    <%= Html.TextBoxFor(model => model.keyid, new { @class = "required", Style = "width:190px", @maxlength = "15" })%> 
    .... 
<% } %> 

상기 제어기

public ActionResult Index(int? id) 
{ 
    var bo = new PayrollInfo(); 
    return View(bo); 
} 

[HttpPost] 
public ActionResult DetailPage(string keyid) 
{ 
    //TempData["prid"] = p_payrollid; 
    return RedirectToAction("PayDtl/" + keyid, "Payroll", keyid); 
} 

같이 I JQuery와 통해 양식을 제출한다. 실제 데이터가 표시되지 않습니다.

컨트롤러의보기에서 keyid 값을 얻으려면 어떻게해야합니까? 이미 -a Keyid 키 ID 값을 포함하는이 양식에서 텍스트 상자 거기 때문에

감사

+0

'Request.Form'와'Request.QueryString' 컬렉션의 당신의'DetailPage', 어떤 내용을 디버깅? –

답변

0

당신이 DetailPage 행동 양식을 제출할 때,이 값으로 게시됩니다,이

function DetailPage() { 
    var rol = $('#keyid').val(); 
    $.ajax({ 
      type: "POST", 
      url: '@Url.Action("DetailPage", "Proll")', 
      data: "keyid=" + rol 
      success: function (result) { 
      ... 
    }); 
}); 
+0

감사하지만 다른 컨트롤러/작업으로 리디렉션하려고 할 때 전체 게시/제출을 수행해야합니다. – Deb

+0

예. 이해합니다. 나는 네가하고 싶은 것을 쓰려고 노력할 것이다. –

2
function DetailPage() { 
    // TODO: don't hardcode /Proll/DetailPage here: use url helpers 
    $('#frmPRoll').attr('action', '/Proll/DetailPage').submit(); 
} 

시도 keyid 조치 매개 변수

또한 RedirectToAction 메서드의 잘못된 오버로드를 사용하고 있습니다. 그것은 당신의 PayDtl가 기대하는 그 물론 가정, 다음과 같이해야한다 keyid라는 인수 :

[HttpPost] 
public ActionResult DetailPage(string keyid) 
{ 
    return RedirectToAction("PayDtl", "Payroll", new { keyid = keyid }); 
} 
관련 문제