如何封装以下代码并将其合并到我的视图中?
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
以来已经好几年了答案 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)来呈现它。如果您要执行此操作,请务必验证内容,否则您将使自己容易受到脚本攻击。