1

我的 apicontroller 中有以下方式的数据-

public class OutletPOCController : ApiController
{
    OutletPOCContext db = new OutletPOCContext();

    [System.Web.Http.ActionName("GetTabText")]
    public TabTextModel GetTabText(int bizId)
    {
        var outlet = db.Info.Where(t => t.BizId == bizId).SingleOrDefault();
        return new TabTextModel
        {
            HomeTab = outlet.BizHomeTabText,
            AboutTab = outlet.BizAboutTabText,
            TimingsTab = outlet.BizTimingsTabText,
        };
    }

现在我想将这些数据检索到我的视图中。我应该如何为这个控制器创建视图并传递上述数据?我的行动方法是什么?我是 webapi 和 json 的新手。任何帮助都是可观的!提前致谢!

4

1 回答 1

0

API 控制器确实有视图,因为您创建了一个负责如何显示数据的 cshtml 页面。ApiController 的目的只是以您想要使用的格式返回数据。

基本上,API 向网络公开原始数据,您以某种方式使用它,然后显示它。

我使用与此类似的东西将数据动态加载到网页中。只是一个将数据返回给客户端的简单 Web api。

public class APIController : ApiController
{
    [HttpGet]  
    [HttpPost]  // allow both post and get requests
    public IEnumerable<String> GetData()
    {
        return new List<string>() { "test1", "test2" };
    }
}

当您浏览到上面的 API 方法时,它会返回此 xml 数据

<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
  <string>test1</string>
  <string>test2</string>
</ArrayOfstring>

我使用 Jquery 并做我喜欢的事情(http://api.jquery.com/jQuery.get/):

$.get("/api/GetData", function(data) {
  alert("Data Loaded: " + data);
});

使用 JS/Jquery 解析 XML 的示例:

如果您只是想将数据放入常规视图并在那里使用它而不通过 javascript,我不会使用 webapi,而是在控制器中获取数据并将其发送到视图以进行显示(ASP MVC4 - 传递列表到通过视图模型查看)。

您还可以查看 ViewBag 容器以将随机奇数数据传递给视图http://goo.gl/03JTR

如果您确实想在视图中呈现数据,请查看:Web API - 默认情况下呈现 Razor 视图?

于 2013-05-27T12:25:26.580 回答