2017-12-05 1 views
-1

asp.Net MVC5에서 개발자가 시작됩니다.
MVC 프로젝트에서 URL이 다른 도메인의 문자열 URL을 반환하는 웹 서비스와 함께 사용합니다.C# MVC5 현재 문자열보기가

URL로 이동하고 싶습니다. 분명 자신을 위해

: 클라이언트 채우기 형태의 홈 페이지를 눌러 내가 형태에서 매개 변수를 사용하여 요청 웹 서비스를 보낼 서버 측에 제출하고 내가 둘째를 제시해야 다른 도메인이 URL과 URL을 얻을 페이지를 클라이언트에 전송

public class HomeController : Controller 
{ 
    public ActionResult Home() 
    { 
     return View("~/Views/Home/home.cshtml"); 
    } 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult doSomething(Something obj) 
    { 
     //use web service and get string URL 
     string urlString = ;// get from the web service response. 
     return View();// want write in the(); 
    } 
} 
+0

웹 서비스 응답에서 오는 URL로 무엇을하고 싶습니까? url로 이동 하시겠습니까? – ankur

+0

여러 가지 방법으로이 작업을 수행 할 수 있습니다. v보기 데이터 또는 뷰 백을 사용하여 시작할 수 있습니다. 모델을 사용하여 뷰에 데이터를 보낼 수도 있습니다. –

+0

네, 그게 내가 원하는 - @ankur – tal

답변

1

또한 MVC에서 탐색에 유용합니다.

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult doSomething(Something obj) 
{ 
    //use web service and get string URL 
    string urlString = ;// get from the web service response. 

    if (!string.IsNullOrEmpty(urlString)) 
    { 
     //if the url is from within the domain. 
     return RedirectToAction(urlString); 
     //if the url is from other domain use this 
     //return Redirect(urlString); 
    } 

    //If the urlString is empty Return to a error page 
    return View("Error"); 
} 
+0

감사합니다. 나는 그것을 검사 할 것이다 – tal

+0

이것은 단지 이미 존재하는'Action'으로 리다이렉트한다는 것을주의하라. 다른 URL로 리디렉션하려면 다른 방법을 사용해야합니다. –

+0

URL이 다른 도메인의 URL과 동일하지 않습니다. @GeoffJames – tal

0

URL입니다 다른 사이트가 아니라 동일한 도메인

외부 URL로 리디렉션하려면, 당신은 Redirect() 방법을 사용해야합니다에서입니다. 그래서 같이

:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult DoSomething(Something obj) 
{ 
    // Use web service to get the string URL 
    string urlString = ...; 

    if (string.IsNullOrEmpty(urlString)) 
    { 
     // If the urlString is empty, take the user to an Error View. 
     return View("Error");   
    } 

    // Redirect the user to the urlString 
    return Redirect(urlString); 
} 

나는 또한 어떤 URL을 확인하려면 일을 추천 할 것입니다 확실히 유효합니다. Uristatic 메소드 IsWellFormedUriString()을 사용하여이 작업을 수행 할 수 있습니다. bool을 반환합니다. 그래서 같이

: 당신이 내부 작업로 리디렉션하는 경우 @ankur가 제안

또는
if (!Uri.IsWellFormedUriString(urlString, UrlKind.Absolute)) 
{ 
    // If the urlString is not a well-formed Uri, take the user to an Error View 
    return View("Error"); 
} 

// Redirect the user to the urlString 
return Redirect(urlString); 

,의 RedirectToAction() 방법을 사용합니다. 추가 참고로


: 당신의 C# 방법 이름이 PascalCase을 사용하는 것이을 확인합니다. 지역 변수/비공개 필드에 대해서는 camelCase을 보존하십시오.

doSomething(...) 대신 DoSomething(...)을 사용합니다 (예제에서는이 작업을 수행했습니다).

희망이 도움이됩니다.

+0

고마워요 .. 만약 그것이 작동한다면 업데이 트됩니다 :) – tal

+0

괜찮습니다. 희망을 당신이 그것을 정렬 얻을 수 있습니다. –