model-view-controller - 如何使用 MVC Razor View 将 HTML 内容绑定(bind)到 Iframe 中?

标签 model-view-controller iframe

在项目中创建 TestModel 类,代码如下。

  public class TestModel
    {
        public long EmailTemplateId { get; set; }
        public string TemplateName { get; set; }
        public string TemplateContent { get; set; }
        public Nullable<System.DateTime> CreatedDate { get; set; }
        public Nullable<System.DateTime> UpdatedDate { get; set; }
        public Nullable<bool> IsDefaultTemplate { get; set; }
        public string TemplateKey { get; set; }
        public string TemplatePath { get; set; }
        public string TemplateJson { get; set; }
        public Nullable<bool> IsAdmin { get; set; }
        public int TemplateType { get; set; }
        public string TemplateTag { get; set; }
}

为 Controller 创建GetTeSTLst操作方法并获取所有数据和列表传递test.cshtml

 public ActionResult GetTestlst()
        {
            var templist = GetTestList().ToList();
            return View(templist);
        }
<小时/>

下面的代码编写了Test.cshtml页面并获取 Controller 中的模型列表进行查看。

@using test.Helpers;
@model List<test.Entities.TestModel>

@{
    ViewBag.Title = "Template";
    Layout = "~/Views/Shared/_Layout.cshtml";

}

<h2>Index</h2>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model[0].EmailTemplateId)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplateName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplateContent)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].CreatedDate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].UpdatedDate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].IsDefaultTemplate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplateKey)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplatePath)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplateJson)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].IsAdmin)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplateType)
        </th>
        <th>
            @Html.DisplayNameFor(model => model[0].TemplateTag)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.EmailTemplateId)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.TemplateName)

            </td>
            <td>


**`<iframe id="testiframe" class="iframe" src=@item.TemplateContent></iframe>`**

            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CreatedDate)
            </td>
            <th>
                @Html.DisplayFor(model => item.UpdatedDate)
            </th>
            <th>
                @Html.DisplayFor(model => item.IsDefaultTemplate)
            </th>
            <th>
                @Html.DisplayFor(model => item.TemplateKey)
            </th>
            <th>
                @Html.DisplayFor(model => item.TemplatePath)
            </th>
            <th>
                @Html.Raw(item.TemplateJson)
            </th>
            <th>
                @Html.DisplayFor(model => item.IsAdmin)
            </th>
            <th>
                @Html.DisplayFor(model => item.TemplateType)
            </th>
            <th>
                @Html.DisplayFor(model => item.TemplateTag)
            </th>
            <td>
                @*@Html.ActionLink("Edit", "Edit", "Test", new { id = item.Id }, null) |
                    @Html.ActionLink("Details", "Details", "Test", new { id = item.Id }, null) |
                    @Html.ActionLink("Delete", "Delete", "Test", new { id = item.Id }, null)*@
            </td>
        </tr>
    }

</table>

在图像下方显示输出。 iframe 正确,但在模型列表中不显示 Html 内容。请给出答案。

<小时/>

enter image description here

最佳答案

您是否考虑过将 HTML 加载到容器中?

<div id='@item.EmailTemplateId'></div>
<script type="text/javascript">
    $(document).ready(function(){
        $('#@item.EmailTemplateId').load('@item.'); 
    });
</script>

关于model-view-controller - 如何使用 MVC Razor View 将 HTML 内容绑定(bind)到 Iframe 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59451227/

相关文章:

用于视频的 Javascript 新窗口未在 IE 中调整大小

javascript - 为什么我的 readState 逻辑中 document.body 为 null?

javascript - 如何同步多个 iframe 的滚动位置

javascript - 使用 Jquery 显示下拉列表中的链接的更简单方法

php - 在这些情况下,我的 Controller 在MVC Web应用程序中将是什么?

javascript - MVC 中如何在两个模型之间共享对象?

asp.net-mvc - 在哪里可以找到 ASP MVC 文档?

javascript - 如何推送页面而不是覆盖它

java - 如何使用 JDialog 类删除或隐藏父窗口

ios - iOS View TableViewCell 中的面向对象编程问题