[英]Pass Html String from Controller to View ASP.Net MVC
哪个是在MVC中将Html String块从Controller传递到View的最佳方法。 我希望它在页面加载时显示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。 谢谢 。
在您的控制器操作中:
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(强类型视图)并在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.YourField
或ViewData["YourStringName"]
并在View中进行检索。 只需将它放在您想要的@
之前的@ViewBag.YourField
或@ViewData["YourStringName"]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.