2014-04-10 2 views
1

보고서를 렌더링하기 위해 ID를 내 컨트롤러로 전달하는 다음 링크가 있습니다.자바 스크립트로 HTML 링크에서 id에 값 할당

<a href="@Url.Action("GetReport", new { type = "PDF", id = 12345})" class="btn btn-default btn-primary">Print Report</a> 
나는 아래의 통화에서 데이터베이스에서 반환 한 결과 위의 링크에이 값 ID를 지정하려는

....

// Global variable 
var DocumentID = null; 

$('#Save').click(function(e) { 

    if (document.forms[0].checkValidity()) { 

     e.preventDefault(); 

     $.ajax({ 
      url: "/Home/SaveDetails", 
      dataType: "json", 
      type: "POST", 
      data: ko.toJSON(viewModel), 
      contentType: "application/json;charset=utf-8", 
      success: function(result) { 
      if (result > 0) { 
       //Assign return value to DocumentID 
       DocumentID = result; 
       alert("This work request has been successfully saved in database. The Document ID is: " + result); 
       } else { 
       alert("The Work Request was not saved, there was an issue."); 
       } 
      }, 
      complete: function() { 
       // Hide loading image. 
      }, 
      error: function(jqXHR, textStatus, errorThrown) { 
       // Handle error. 
       alert(errorThrown); 
      } 
     }); 
    } else { 
     alert("Form is not valid"); 
    } 
}); 

작품 위의 호출과 반환 DocumentID를 가져 와서 경고와 함께 표시합니다. 위의 링크는 ID에 하드 코딩 된 값이있는 경우 작동합니다. 이 값을 동적으로 만들고 싶습니다. 아약스 - 성공 처리기에서

+0

어떤 ID를 의미하는지 설명 할 수 있습니까? 링크의 ID? ? – Guy

답변

1

위의 제안을 원하는에 앵커의 HREF를 설정하는 사용할 수 없거나 앵커 태그에 알려져 있지 않습니다. DocumentID를 Url.Action에 넣는 구문에도 오류가 있습니다. 나는 이것을 작동시키지 못했고 대신에 또 다른 오류를 발견했다. 문자가 너무 많다.

대신 앵커에게 ID을주고 jQuery를 사용하여 해당 ID을 발견하고 그것을 href 속성이이 자바 스크립트에서 코드의 두 번째 줄에서 수행되는 것 교체합니다.

HTML :

<a href="#" **id="Report"**>Print Report</a> 

자바 스크립트 : 두 가지의

var DocumentID = result; var href = '@Url.Action("GetReport")?type="PDF"&id=' + DocumentID + ''; 
$("#Report").attr('href', href); 

를 적어 둡니다. URL이 형성되고 앵커 태그는 이전 제안과 다르게 발견됩니다.

이 테스트되었고 보고서를 처리하는 콜백 함수에서 각각 문자열 및 int 형식의 매개 변수에 대해 작동합니다. 두 문자열을 원하면 다음과 같이 DocumentID 주위에 큰 따옴표를 추가하십시오. id = " '+ DocumentID +'" ';

2
if (result > 0) { 
    //Assign return value to DocumentID 
    var DocumentID = result; 
    var href = '@Url.Action("GetReport", new { type = "PDF", id =' + DocumentID +'})'; 
    $("a:contain('Print Report')").attr('href', href);    
} 
1

는 '포함'이 경우에는 지원되지 않는 의사에 대한 오류가 발생합니다

var newHref = '@Url.Action("GetReport", new { type = "PDF", id = '+DocumentID +'})'; 

$('a').attr('href',newHref); 
+0

Wont work, 힌트 : 1.'newHref'는'''를 사용해야합니다. 2.'$ ('a')'는 다른 앵커 태그를 선택할 수 있습니다. – xyz

+0

오류가 발생했습니다. 문자가 너무 많습니다. –

+0

코드가 업데이트되었습니다. Karna는 단지 $ ('a')보다 더 나은 선택기를 추가해야한다고 제안했습니다. – Abhi

관련 문제