【问题标题】:@Html.Raw in MVC 4MVC 4 中的@Html.Raw
【发布时间】:2013-07-24 06:28:29
【问题描述】:

我正在尝试创建一个新闻网站,显示来自多个新闻网站的内容

开始尝试 Webclient 并在一个简单的 Web 表单上正常工作

但是当我到达 MVC 时,我得到:当前上下文中不存在名称“read”

代码如下:

public ActionResult News() 
    {
        var read = "";
        var msg = "";
        try
        {
            WebClient myC = new WebClient();
            read = myC.DownloadString("http://localhost:61123/Videos");

        }
        catch (Exception ex)
        {
            msg = ex.Message.ToString();
        }
        return View();
    }

和 News.cshtml 视图:

@ViewBag.Message.msg
@Html.Raw(read)

任何提示..即使我应该尝试其他方法从其他网站获取特定内容?

【问题讨论】:

    标签: c# html asp.net-mvc


    【解决方案1】:

    read 是控制器操作方法的本地范围。视图对此一无所知。您必须将其显式发送到视图。你可以用 ViewBag 做到这一点。

    try
    {
        WebClient myC = new WebClient();
        read = myC.DownloadString("http://localhost:61123/Videos");
        ViewBag.Read = read;
    }
    

    然后在你的视野中

    @Html.Raw(ViewBag.Read)
    

    您还可以创建一个 Model 类并将视图强类型化到您的模型,甚至是您的 Model 类的实例列表

    【讨论】:

    • 从一开始就搞定了谢谢 ;) 顺便说一句,如果你明白我的意思,WebClient 是该任务的理想解决方案以及如何确定要查看哪些 HTML 标记,即:不包括页面菜单、徽标..等
    • 您最好获得一个 RSS 提要来执行此操作,这是所有主要新闻提供商都应该拥有的。如果您绝对必须解析 HTML,请尝试 HTML Agility Pack - htmlagilitypack.codeplex.com
    猜你喜欢
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多