这是在MVC中将Html字符串块从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>
我想把它作为字符串从控制器传递到视图。在那里它将显示为html。,谢谢你,。
发布于 2014-04-01 17:35:58
在您的控制器操作中:
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)
发布于 2014-04-01 17:20:32
您可以将控制器中的html赋值给ViewBag,并访问视图中的ViewBag以获取作为html的值
控制器
ViewBag.YourHTML = htmlString;
视图
<div> @ViewBag.YourHTML </div>
最好是而不是将html从控制器传递到视图,而不是将对象或对象集合传递给视图(强类型视图)并在视图中呈现html,因为这是视图的责任
控制器
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>
发布于 2014-04-01 17:36:36
最好的方法是创建一个局部视图,并将它返回的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>
https://stackoverflow.com/questions/22781548
复制相似问题