2014-04-16 1 views
0

내 프로그램에는 사용자가 모든 세부 정보를 입력하여 시스템에 등록하는 등록 페이지가 있습니다. 이 페이지에서는 버튼을 선택했을 때 다른 프로젝트에있는 윈도우 폼을 열어야하지만,이 버튼을 선택하면 아무 일도 일어나지 않습니다. 윈도우 폼 응용 프로그램 뒤에MVC3을 사용하여 한 프로젝트의 Windows 폼을 다른 프로젝트의 버튼에 연결하는 방법

코드 : 위의 코드는 자신의 프로젝트에서 발견된다

public GenerateToken() 
    { 
     InitializeComponent(); 
    } 

    public void Main() 
    { 
     Application.Run(GenerateToken.ActiveForm); 
    } 

. 다른 프로젝트에서이이 창 양식을 호출하는 컨트롤러의 코드는 다음과 같습니다

public ActionResult generateToken() 
    { 
     new TokenGenerator.GenerateToken().Main(); 
     return RedirectToAction("RegisterPage"); 
    } 

버튼이 버튼에 위치하고 있으며 뷰의 코드는 다음과 같습니다

<input id="GenToken" type="button" value="generateToken" onclick = "generateToken" /> 

뭔가가 있다는 것을 I 버튼에 관해서 잘못하고있는 것인가, 또는 그것들을 잘못 연결하려고하고있는 것입니까?

+0

WindowsForm과 웹 응용 프로그램은 서로 다른 개념입니다. 이 접근법으로는 원하는 것을 할 수 없습니다. 정확히 당신이해야 할 일에 대해 더 많이 말할 수 있습니까? –

+0

내 mvc 프로젝트에서 wcf 응용 프로그램을 가지고 있는데 등록 프로세스에 대한보기와 컨트롤러가 있습니다. 등록을 위해 키 코드를 생성하기 위해 암호화 방법을 사용하는 암호 및 핀을 입력 할 수있는 Windows 양식 응용 프로그램을 선택해야하는 버튼을 배치해야합니다. 암호화 프로세스가 작동하지만 나는 윈도우 클릭하면 폼 응용 프로그램이 열리는 것 같습니다. – Maeglin77

+0

모든 클라이언트가 자신의 컴퓨터에서이 win 앱을 보유하고 있습니까? 이것이 로컬 메커니즘 또는 네트워크에서 작동합니까? 그것은 할 수 있지만이 방법은 그런 일을하는 적절한 방법이 아닌 것 같습니다. –

답변

0

내 Windows 응용 프로그램 프로젝트에서 클래스를 만들고이 클래스를 내 주요 mvc 프로젝트에 연결하여 문제를 해결할 수있었습니다. 클래스에는 다음과 같은 메서드가 포함되어 있습니다 :

 Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     SomeForm form1 = new SomeForm(); 
     Application.Run(form1); 

이 링크를 주 MVC 프로젝트의 단추에 연결하면 단추를 클릭 할 때 Windows 양식을로드 할 수있었습니다.

0

이렇게하면이 두 앱 사이에 통신 채널을 만들어야합니다. 이 목적을 위해 Named Pipes, .NET remoting 또는 IIS에서 호스팅되는 WCF (더 나은 방법)와 같은 최신 기술을 사용할 수 있습니다. 명명 된 파이프 또는 .NET Remoting을 선택하는 경우 Windows 서비스 프로젝트를 만들어 서버 응용 프로그램으로 사용해야합니다. 이 sample에 표시된 것처럼 호스트 개체를 만들고 Windows 서비스 솔루션에 채널을 등록하십시오. 이 호스팅 클래스의 메소드를 Windows 애플리케이션의 러너로 정의해야합니다. 코드에서 수행 한 방식이 아닌 프로세스로 실행해야한다는 사실에 주목하십시오. 웹 응용 프로그램은 Windows 응용 프로그램을 실행할 서버 호스트 객체에서 해당 메서드를 호출해야합니다. 과정을 시작하는 방법은 here입니다. 당신이 무엇을해야하는지 이해한다면 알려주세요.

+0

프로세스 생성을위한 코드는 어디에 입력해야합니까? 나는 그것이 그 자체로 입력되지 않을 것이라고 추정한다. 내 문제는 Windows 응용 프로그램의 실행으로 이어지는 메서드에 액세스하기 위해 컨트롤러를 이동하는 버튼/링크를 얻지 못하는 것입니다. 일단이 작업을 수행하면 버튼이 위의 mainres라는 메서드를 호출하여 Windows 폼을 가져 오는 actionresult 메서드로 연결됩니다. 리소스를 찾을 수 없음 오류 : @Html을 사용하여 버튼을 다음과 같이 연결합니다.ActionLink ("Generate Token", "generateToken", "AccountController") – Maeglin77

+0

웹 응용 프로그램에서 Windows Forms 응용 프로그램을 실행할 수 없습니다! 내가 말했듯이 Windows Service Project를 만들고 Windows 응용 프로그램을 실행해야합니다. –

관련 문제