.net MVC返回内容与返回视图
如何封装以下代码并将其合并到视图中.net MVC返回内容与返回视图,.net,json,asp.net-mvc,.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
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");
}
}
如您所见,我根本没有访问我的视图页面,我也不知道如何将此代码插入到我的视图中。我能把它转换成一个函数,然后用返回视图(foo)调用它吗
谢谢!抱歉,我已经多年没有使用mvc了,所以如果我明白你的意思,你想在你已经拥有的视图中嵌入“数据”——因此根据“数据”是什么,你应该创建一个带有属性的ViewModel(只是一个标准C类)——假设数据是一个字符串,因为你正在以字符串的形式检索它。将属性值设置为data,然后从此方法返回视图,并传入新的ViewModel
public class MyViewModel
{
public string LoremContent { get; set; }
}
然后在您的视图中,您可以参考@Model.LoremContent-如果它是HTML,您可以使用@HTML.Raw(Model.LoremContent)来呈现它。如果要执行此操作,请确保验证内容,否则会使自己容易受到脚本攻击。非常感谢Russell,我非常感谢您的帮助。嗨,Russell,我想问一下-当您提到验证时,您是指绑定我的模型吗?这是你帮我做的最后一件产品。再次感谢您仔细想想,如果您正在呈现来自第三方网站的内容,而您根本没有检查它-如果有人入侵该网站或服务,导致其返回恶意脚本,该怎么办?您可以通过嵌入脚本而不检查其内容来帮助直接传播该脚本。是的,这完全有道理。我必须研究如何验证第三方内容。你已经做得够多了,但如果你有我可以用来了解更多这方面的介绍,将不胜感激。无论如何,非常感谢你的帮助!检查-前10名项目是一个很好的开始。你不太可能只想将第三方网站的内容呈现为html,所以我想这对你的实时最终结果项目来说可能是一个学术性的问题。
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);
}
}