如何将从Handler调用返回的HTML Snippet加载到字符串中?

时间:2010-02-12 12:55:28

标签: html asp.net-mvc code-snippets

我有一个ASP.NET MVC应用程序,我正在尝试从另一个ASP.NET项目中的Handler加载以下html片段,从我的一个控制器中显示在视图中:

<br />
<div id="ctl00_divCommentary" class="commentary">
    <div id="ctl00_divCommentaryHeader">
        <span id="ctl00_lblCommentaryHeaderBold" class="commentaryHeader">blah</span>
        <span id="ctl00_lblCommentaryHeader">blah</span>
    </div>
    <div id="ctl00_divCommentaryText" class="commentaryText">blah blah blah</div>
</div>

我用来获取该html片段的代码如下:

public string GetCommentary()
{
    string commentary = "";

    Uri uri = new Uri("http://localhost/Handlers/CommentaryHandler.ashx");
    var doc = XDocument.Load(uri.ToString()); 

    commentary = doc.ToString();

    return commentary;
}

这是失败的

var doc = XDocument.Load(uri.ToString()); 

显示消息“有多个根元素”。

有没有办法调用Handler并以某种方式将结果加载到字符串中?

由于

戴夫

2 个答案:

答案 0 :(得分:0)

确实存在多个根元素(<div><br>)。从代码段中松开<br>或将所有代码段包装在另一个<div>中以使其有效..

答案 1 :(得分:0)

这最终起作用了:

<% Html.RenderAction("HtmlSource", "MyController"); %>

在Controller中使用以下方法:

public string HtmlSource()
{
    HtmlManager wm = GetHtmlManager(2, 6);

    return wm.Html;
}

Html管理器只是从文件中读取html,与文本

相同