2017-02-28 2 views
0

내 MVC 사이트에서 동적으로 생성 된 URL을 새 탭에서 열어야합니다. 지금까지 코드에 대한 내용은 다음과 같습니다.새 탭에서 동적으로 생성 된 링크 열기

<a class='noline' onclick="location.href='<%:@Url.Action("GeneratePaymentUrl", "Home", new {target="_blank"})%>'"> Pay Invoices</a> 

    public ActionResult GeneratePaymentUrl() 
    { 
     try 
     { 
      string returl = GetPaymentUrl(); 

      if (returl.ToLower().StartsWith("http")) 
      { 
       //Response.Redirect(returl); 
       return new RedirectResult(returl, false); 
      } 
      else 
      { 
       return new RedirectResult("/"); 
      } 

     } 
     catch (Exception Ex) 
     { 
     } 
     return new RedirectResult("/"); 
    } 

이제 클릭하면 링크가 생성됩니다. 외부 지불 게이트웨이로 이동하고 인증 시간이 극도로 짧기 때문입니다. 지금 코드가 작동합니다. 페이지가 올바르게 열리지 만 새 탭에서는 열리지 않습니다. 앵커 태그에 target="blank" href="/"을 추가하려고하면; 새 창과 방문 페이지를 원래의 페이지로 가져옵니다.

어떻게하면 새 창에서 튀어 나오게 할 수 있습니까?

답변

1

JavaScript: location.href to open in new window/tab?는 대답이다. 스크립트를 사용하여 페이지를로드하려고하므로 대상 속성이 무시됩니다. 새 페이지를 여는 스크립트에 대해이를 지정해야합니다. 이런 식으로 뭔가 :

<a class='noline' onclick="window.open('<%:@Url.Action("GeneratePaymentUrl", "Home", new {target="_blank"})%>,'_blank' 
);"> Pay Invoices</a> 

    public ActionResult GeneratePaymentUrl() 
    { 
     try 
     { 
      string returl = GetPaymentUrl(); 

      if (returl.ToLower().StartsWith("http")) 
      { 
       //Response.Redirect(returl); 
       return new RedirectResult(returl, false); 
      } 
      else 
      { 
       return new RedirectResult("/"); 
      } 

     } 
     catch (Exception Ex) 
     { 
     } 
     return new RedirectResult("/"); 
    } 

1

대신 window.open을 사용해 보셨습니까?

window.open("http://www.google.com")

는 ~ 내가 여기 추측

+0

네를 작동 할 수 있습니다; 그게 다야. _blank가 지정된 window.open. 아침에 커피를 보내기 전에 나를 바르게 대접 해줍니다. 감사! –

+0

짐 걱정이 없습니다! –