通过C#代码发出http请求?

cho*_*bo2 2 c# asp.net-mvc httpcontext asp.net-mvc-3

可能重复:
将视图渲染为字符串

你好

我想知道是否有可能在你的C#代码中(通过调度程序在它自己的线程上并且不知道httpcontext)一个请求转到控制器?

//server side code
// do calculations 
// post to a controller that takes in a list of view models
// do stuff with the collection of view models.

public myControllerIwantToCallFromServerSide(List<VM> viewModels)
{
   // stuff here
}
Run Code Online (Sandbox Code Playgroud)

我需要一些方法来做一个http请求,以便我可以获得一个httpcontext,因为我需要一个实时的http上下文来使用一个库(动作邮件程序),它接受一个mvc视图并将其呈现为一个电子邮件并发送它.

Dar*_*rov 7

您可以使用WebClient类:

using (var client = new WebClient())
{
    var values = new NameValueCollection
    {
        { "prop1", "value 1" },
        { "prop1", "value 2" },
    };
    var result = client.UploadValues("http://example.com/", values);
}
Run Code Online (Sandbox Code Playgroud)