Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 创建RESTful体系结构以使用JSON在ASP.NET web应用程序和MVC 3应用程序之间进行通信_Asp.net Mvc_Asp.net Mvc 3_Rest - Fatal编程技术网

Asp.net mvc 创建RESTful体系结构以使用JSON在ASP.NET web应用程序和MVC 3应用程序之间进行通信

Asp.net mvc 创建RESTful体系结构以使用JSON在ASP.NET web应用程序和MVC 3应用程序之间进行通信,asp.net-mvc,asp.net-mvc-3,rest,Asp.net Mvc,Asp.net Mvc 3,Rest,我需要从我的asp.net web应用中获取GET字段(名字和姓氏)。它需要使用JSON将数据从前端(asp.net web应用程序)发送到MVC 3应用程序。MVC 3应用程序将与数据库通信,检索值,并将它们序列化为json对象并发布到前端(ASP.NET web应用程序)。有人能用一个示例代码解释一下我是如何做到这一点的吗?您可以使用这个类。它允许您向任何web应用程序发送HTTP请求。就JSON部分而言,您需要一个JSON序列化程序。您可以使用内置类或第三方,例如 因此,假设您的ASP.N

我需要从我的asp.net web应用中获取GET字段(名字和姓氏)。它需要使用JSON将数据从前端(asp.net web应用程序)发送到MVC 3应用程序。MVC 3应用程序将与数据库通信,检索值,并将它们序列化为json对象并发布到前端(ASP.NET web应用程序)。有人能用一个示例代码解释一下我是如何做到这一点的吗?

您可以使用这个类。它允许您向任何web应用程序发送HTTP请求。就JSON部分而言,您需要一个JSON序列化程序。您可以使用内置类或第三方,例如

因此,假设您的ASP.NET MVC 3应用程序中有以下要调用的控制器操作:

[HttpPost]
public ActionResult Foo(Bar bar)
{
    ...
    return Json(new 
    {
        status = "OK"
    });
}
其中
Bar
类包含一些属性(可以是简单类型或复杂类型):

现在,您可以从客户端这样调用它:

using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/json";
    var serializer = new JavaScriptSerializer();
    var json = serializer.Serialize(new 
    {
        firstName = "first",
        lastName = "last"
    });
    var resultJson = client.UploadString("http://example.com/foo", json);
    var result = serializer.Deserialize<Result>(resultJson);
}

非常感谢你给我一个清晰的想法。我已经完成了您提供的步骤,但是当我同时运行MVC应用程序和客户端时,它会在这一行(client.Uploadstring(“)抛出404 Not Found错误。你知道为什么会发生这种情况吗?@Krishh,也许你没有配置你的asp.net mvc应用程序,使其响应
/foo
。这完全取决于你的路由设置。你可能还需要指定一个控制器名称:
/home/foo
。我想这是我犯的错误。哇,它成功了。非常感谢你的解释我把过程讲得很清楚,谢谢
using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/json";
    var serializer = new JavaScriptSerializer();
    var json = serializer.Serialize(new 
    {
        firstName = "first",
        lastName = "last"
    });
    var resultJson = client.UploadString("http://example.com/foo", json);
    var result = serializer.Deserialize<Result>(resultJson);
}
public class Result
{
    public string Status { get; set; }
}