将 HTML 字符串从控制器传递到查看 ASP.Net MVC

本文关键字:ASP Net MVC 字符串 HTML 控制器 | 更新日期: 2023-09-27 17:55:36

这是将 Html 字符串块从控制器传递到 MVC 中的视图的最佳方式。我希望它在页面加载时显示该 html 块。谢谢。它可以是任何 Html,例如

<table style="width:300px">
<tr>
  <td>Jill</td>
  <td>Smith</td> 
  <td>50</td>
</tr>
<tr>
  <td>Eve</td>
  <td>Jackson</td> 
  <td>94</td>
</tr>
</table>

我想将其作为字符串从控制器传递到 View。 其中它将显示为 html。谢谢

将 HTML 字符串从控制器传递到查看 ASP.Net MVC

在控制器操作中:

ViewBag.HtmlStr = "<table style='"width:300px'"><tr><td>Jill</td><td>Smith</td> <td>50</td></tr><tr><td>Eve</td><td>Jackson</td><td>94</td></tr></table>";

您的观点 :

@Html.Raw(ViewBag.HtmlStr)

您可以将控制器中的 html 分配给 ViewBag,并在 View 中访问 ViewBag 以获取作为 html 的值

控制器

ViewBag.YourHTML = htmlString;

视图

<div> @ViewBag.YourHTML </div>

最好不要将 html 从控制器传递到 View,而是将对象或对象的集合传递给 View(强类型视图)并在视图中呈现 html,因为这是 View 的责任

控制器

public ActionResult YourView()
{
    //YourCode
    return View(entities.yourCollection.ToList());
}

维尤

<table style="width:300px">
    foreach (var yourObject in Model)
    {
       <tr>
             <td>@yourObject.FirstName</td>
             <td>@yourObject.LasttName</td> 
             <td>@yourObject.Amount</td>
       </tr>      
    }
</table>

最好的方法是创建一个分部视图,并将其返回的 html 附加到某个容器div 的父视图中。

在您的主视图中,这样做:

<div>
    @{
    Html.RenderAction("youraction","yourcontroller")
     }
</div>

在您的操作中,执行以下操作:

public ActionResult youraction()
{
 return View();
}

和您的部分观点:

@{
Layout = null;
}
<table style="width:300px">
<tr>
  <td>Jill</td>
  <td>Smith</td> 
  <td>50</td>
</tr>
<tr>
  <td>Eve</td>
  <td>Jackson</td> 
  <td>94</td>
</tr>
</table>

控制器

 ViewBag.HTMLData = HttpUtility.HtmlEncode(htmlString);  

视图

@HttpUtility.HtmlEncode(ViewBag.HTMLData)
您可以使用

ViewBag.YourFieldViewData["YourStringName"]并在视图中检索它。只需将其放在您想要的前面,前面是像这样@ViewBag.YourField@ViewData["YourStringName"] @