我正在开发一个ASP.NET MVC应用程序,其中有一个带有Uri属性的对象。Uri包含指向以下格式的资源的restful链接:
/Repository/Dataset/5
Repository控制器的Dataset操作将dataset 5的内容作为Json返回。
如何从Uri调用此方法,并从对象内部将响应解释为Json?
非常感谢。
发布于 2009-10-30 23:51:03
目前,我将实现一个Uri扩展方法,为uri创建一个WebRequest对象。
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;
}
发布于 2009-10-30 10:10:16
在服务器端操作中,返回JsonResult。
public ActionResult Dataset(int id)
{
// reository code
return Json(model);
}
客户端调用$.getJSON。
发布于 2009-10-30 21:35:38
我的观点是,你不应该在code.In ASP.NET中的任何地方调用你的控制器来接受请求,获取数据,并选择要返回的正确视图。
也许你应该在已经返回JSONized数据的存储库上添加方法,或者引入“中间人”来序列化从存储库返回的数据,这样控制器就可以调用中间人来完成这项工作。然后,可以从代码中的任何位置调用存储库(或“中间人”)。
例如(使用Json.NET进行json序列化):
public class MiddleMan
{
IRepository repository
public MiddleMan(IRepository repository)
{
this.repository = repository;
}
public string GetJsonObjects(int id)
{
return JsonConvert.SerializeObject(repository.GetObject(id));
}
}
然后控制器(或代码中的任何地方)可以调用这个中间类:
public string Dataset(int id)
{
return new MiddleMan(repository).GetJsonObjects(id);
}
https://stackoverflow.com/questions/1644754
复制相似问题