繁体   English   中英

从Controller传递Html字符串以查看ASP.Net MVC

[英]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.YourFieldViewData["YourStringName"]并在View中进行检索。 只需将它放在您想要的@之前的@ViewBag.YourField@ViewData["YourStringName"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM