0

我有以下要求。需要在IFrame中显示Mime消息的html Body

看法

<iframe id="myIframe1" src="http://localhost:23245/Home/GetMimeMessageContent?FilePath=D \MimeFiles/htmlBody-small1.eml&PartName=HtmlBody" style="width:600px;height:600px;" >

控制器

public ActionResult GetMimeMessageContent(string filePath,string partName)
    {
        var mimeModel = BuildMimeModel(filePath, partName);
        MimeHeaderModel mimeHeadermodel = new MimeHeaderModel();
        mimeHeadermodel.FromAddress = mimeHeadermodel.ToAddress = mimeHeadermodel.Subject = string.Empty;
        mimeModel.MimeHeader = mimeHeadermodel;
        return View("MailDetailsView", mimeModel.MimeBody.HtmlBody);
    }

它没有在 Iframe 中显示 HtmlBody。但它调用控制器。我不知道我错过了什么。

4

1 回答 1

1

不确定您是否使用 jquery,但是:

$(function() {
var $frame = $('<iframe style="width:200px; height:100px;">');
$('body').html( $frame );
setTimeout( function() {

            $.ajax(
               url="/Home/GetMimeMessageType/small1.eml/HtmlBody",
               type:'GET',
               success: function(data){
                  var doc = $frame[0].contentWindow.document;
          var $body = $('body',doc);
          $body.html(data);
               }
            );

},1 );
 });

我没有测试上面的代码,但这应该可以正常工作。需要注意的几点:

您将需要创建一个自定义路由以将其映射到您的控制器: http: //msdn.microsoft.com/en-us/library/cc668201 (v=vs.100).aspx

您还需要将 javascript $('body').html() 更改为作为占位符的 div 的 ID

你也会注意到我没有路径,如果这永远不会改变,你应该将路径添加到你的代码中,或者你可以使用 formcollection 并将 jquery ajax 更改为帖子,并在那里设置变量和值。

然后,您的内容将出现在 iframe 中。

忘记整个 html.renderaction,这个解决方案给你更多的范围

于 2013-04-05T12:28:43.270 回答