Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MVC返回内容与返回视图_.net_Json_Asp.net Mvc - Fatal编程技术网

.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);
    }
}