首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Asp.net mvc中通过Uri访问资源

在Asp.net mvc中通过Uri访问资源
EN

Stack Overflow用户
提问于 2009-10-30 00:00:00
回答 3查看 151关注 0票数 0

我正在开发一个ASP.NET MVC应用程序,其中有一个带有Uri属性的对象。Uri包含指向以下格式的资源的restful链接:

代码语言:javascript
运行
复制
/Repository/Dataset/5

Repository控制器的Dataset操作将dataset 5的内容作为Json返回。

如何从Uri调用此方法,并从对象内部将响应解释为Json?

非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-30 23:51:03

目前,我将实现一个Uri扩展方法,为uri创建一个WebRequest对象。

代码语言:javascript
运行
复制
public static string GetContent(this Uri uri)
{
      var myRequest = (HttpWebRequest) WebRequest.Create(uri);
      myRequest.Method = "GET";
      WebResponse myResponse = myRequest.GetResponse();
      var sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
      string result = sr.ReadToEnd();
      sr.Close();
      myResponse.Close();
      return result;
}
票数 0
EN

Stack Overflow用户

发布于 2009-10-30 10:10:16

在服务器端操作中,返回JsonResult。

代码语言:javascript
运行
复制
public ActionResult Dataset(int id)
{
  // reository code
  return Json(model);
}

客户端调用$.getJSON

票数 0
EN

Stack Overflow用户

发布于 2009-10-30 21:35:38

我的观点是,你不应该在code.In ASP.NET中的任何地方调用你的控制器来接受请求,获取数据,并选择要返回的正确视图。

也许你应该在已经返回JSONized数据的存储库上添加方法,或者引入“中间人”来序列化从存储库返回的数据,这样控制器就可以调用中间人来完成这项工作。然后,可以从代码中的任何位置调用存储库(或“中间人”)。

例如(使用Json.NET进行json序列化):

代码语言:javascript
运行
复制
public class MiddleMan
{
    IRepository repository
    public MiddleMan(IRepository repository)
    {
      this.repository = repository;
    }

    public string GetJsonObjects(int id)
    {
      return JsonConvert.SerializeObject(repository.GetObject(id));
    }

}

然后控制器(或代码中的任何地方)可以调用这个中间类:

代码语言:javascript
运行
复制
public string Dataset(int id)
{
  return new MiddleMan(repository).GetJsonObjects(id);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1644754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档