C#如何从控制台应用程序调用MVC Action方法

Raj*_*Raj 6 c# asp.net-mvc

我正在处理控制台应用程序,它获取一些数据并调用MVC3 Action方法并将获取的数据作为参数传递给该操作方法.但我的问题是控制台应用程序如何知道数据成功传递\ MVC操作方法正确调用并且服务器上的mvc应用程序正在运行

这是我的代码:

public static void Main()
{
// Mvc application object intialization
                HomeController object_Mail = new HomeController();
            // Mvc action method call
           object_Mail.mailgateway(mvcemails); //mvcemails parameter passed to Actionmethod               
}
Run Code Online (Sandbox Code Playgroud)

请指导我......

谢谢,拉吉

Baz*_*nga 9

你不能像在这里那样调用MVC动作,桌面应用程序和Web应用程序是无关的.它们作为两个不同的实体存在.现在,如果你需要从桌面应用程序调用mvc动作,就像调用任何其他web使用桌面应用程序的终点,您需要创建HTTPRequest ..

在桌面应用程序中,按如下方式创建HTTPRequest:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://"+ <your mvc action endpoint> )
request.Method = "GET";
//specify other request properties

try
{
    response = (HttpWebResponse)request.GetResponse();
}
Run Code Online (Sandbox Code Playgroud)

如果你想将一些数据传递给你的动作即动作参数,你可以按如下方式建立你的网址:

获取请求

string url = string.Format(
            "http://mysite/somepage?key1={0}&key2={1}",
            Uri.EscapeDataString("value1"),
            Uri.EscapeDataString("value2"));
Run Code Online (Sandbox Code Playgroud)

为POST请求

webRequest.Method = "POST";
var data=string.Format("key1={0}&key2={1}",Uri.EscapeDataString("value1"),Uri.EscapeDataString("value2")");
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write();
requestWriter.Close();
Run Code Online (Sandbox Code Playgroud)