C#如何从控制台应用程序调用MVC操作方法
我正在开发控制台应用程序,它获取一些数据并调用MVC3操作方法,并将获取的数据作为参数传递给该操作方法。 但我的问题是控制台应用程序如何知道数据成功通过\MVC操作方法调用,以及服务器上的MVC应用程序是否正在运行 这是我的密码:C#如何从控制台应用程序调用MVC操作方法,c#,asp.net-mvc,C#,Asp.net Mvc,我正在开发控制台应用程序,它获取一些数据并调用MVC3操作方法,并将获取的数据作为参数传递给该操作方法。 但我的问题是控制台应用程序如何知道数据成功通过\MVC操作方法调用,以及服务器上的MVC应用程序是否正在运行 这是我的密码: public static void Main() { // Mvc application object intialization HomeController object_Mail = new HomeController();
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
}
请引导我
谢谢,
Raj您不能像这里那样调用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();
}
及
对于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();
我认为您需要使用WebClient或HttpWebRequest类来调用操作方法。可以用您现在的方式来实现。然而,大多数web应用程序都有很多依赖项,您需要使用诸如 我经常在单元测试库中引用包含MVC应用程序的DLL,这相当于您描述的场景。我使用Moq来提供请求上下文和控制器所需的其他依赖项,如会话状态、数据库存储库等 如果您使用假依赖项,则控制器操作可能没有用处。在这种情况下,我会遵循其他答案的建议
这是一个大而复杂的主题,在许多博客和其他关于单元测试asp.net mvc的stackoverflow问题上都有讨论。好的,我知道了,但是如何使用上面的代码ie将我的(数据)对象参数传递给mvc操作方法httpwebrequest@Baz1nga我想是个作家有参数吗?@BhushanFirake下次我会确保编译代码,确保它正在运行,并有一个示例应用程序。我相信,答案仍然没有更新。从不使用数据变量。它应该是requestWriter.Write(数据)
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();