MVC返回内容与返回视图

时间:2016-06-19 19:20:55

标签: .net json asp.net-mvc

如何封装以下代码并将其合并到我的视图中?

public ActionResult Index()
    {
        string restURL = "http://loripsum.net/api/3/medium/";
        using (var client = new WebClient())
        {
            var data = client.DownloadString(restURL);
            return Content(data, "application/json");
        }

    }

正如您所看到的,我根本没有访问我的视图页面,而且我不确定如何将此代码插入到我拥有的视图中。我可以将其转换为函数,然后使用return View(foo)调用它吗?

谢谢!对不起,自从我使用过mvc

以来已经好几年了

1 个答案:

答案 0 :(得分:2)

所以,如果我明白你的意思,你就想要嵌入数据"在你已经拥有的视图中 - 所以取决于什么"数据"是的,您应该创建一个ViewModel(只是一个标准的C#类),其中包含一个属性 - 假设数据是一个字符串,因为您将其作为字符串检索。将属性的值设置为data,然后从此方法返回View,并传入新的ViewModel。

public class MyViewModel
{
    public string LoremContent { get; set; }
}

...

public ActionResult Index()
{
    string restURL = "http://loripsum.net/api/3/medium/";
    using (var client = new WebClient())
    {
        var data = client.DownloadString(restURL);
        MyViewModel model = new MyViewModel() { LoremContent = data };
        return View(model);
    }
}

然后在您的视图中,您可以参考@ Model.LoremContent - 如果它是HTML,您只需使用@ Html.Raw(Model.LoremContent)来呈现它。如果您要执行此操作,请务必验证内容,否则您将使自己容易受到脚本攻击。