假设我有一个 WebGet 方法:
[WebGet]
public IQueryable<State> GetStatesStartingWithLetter(string letter)
{
return CurrentDataSource.States.Where(s => s.Name.Substring(0, 1).Equals(letter.Substring(0, 1),
StringComparison.InvariantCultureIgnoreCase)).OrderBy(s => s.Name);
}
我可以像这样在浏览器中使用它:
http://localhost:55576/WcfDataService.svc/GetStatesStartingWithLetter?letter='a'
但是,我必须在 MVC3 控制器中做什么才能调用该方法?我已经添加了服务引用,我可以毫无问题地使用上下文。下面的代码在 /Controller/States URL 处向屏幕显示状态列表。
public ActionResult States()
{
MyDbContext ctx = new MyDbContext(new Uri("http://localhost:55576/WcfDataService.svc/"));
var temp = from state in ctx.States
select state;
return View(temp);
}
我没有看到任何简单的方法来调用 WebGet 方法,它没有像我期望的那样暴露在服务上。我错过了什么吗?我可以通过这样做得到结果:
public ActionResult States()
{
WhelenDbContext ctx = new WhelenDbContext(new Uri("http://localhost:55576/WcfDataService.svc/"));
var temp = ctx.Execute<State>(new Uri("http://localhost:55576/WcfDataService.svc/GetStatesStartingWithLetter?letter='a'"));
return View(temp);
}
..但这似乎有点荒谬。任何建议都非常感谢。