繁体   English   中英

仅在特定视图的HTML标记中添加属性?

[英]adding attributes in HTML tag of specific views only?

我正在使用剃刀视图引擎开发MVC应用程序。

HTML,Head和Body标签放在共享视图_Layout.cshtml中,其他视图使用它作为布局。

在支持应用程序的同时,我需要在某些页面中添加自定义属性(不是在所有页面中)。 如果我在布局中添加属性,它将出现在所有页面中。 您能否高兴地指导我如何仅在所需页面中管理添加属性。

下面是我的带有属性的html标签:

<html ng-app="business_rules">

您可以创建一个需要所有这些属性的布局,并使用该布局引用所需的页面

@{
   Layout = "Path/To/Layout.cshtml";
}

在这些页面的顶部。

对于其余页面,您将使用不具有这些属性的不同布局。

您也可以从控制器中定义布局。 它可以如下完成:

public ActionResult Index()
{
    MyMOdel model = new MyMOdel ();
    //TO DO:
    return View("Index", "_AdminLayout", model);
}

我会用jquery。 只需在以下代码中添加您需要此属性的页面:

<script>
$(document).ready(function(){
$('html').attr("ng-app", "business_rules")
});
</script>

我现在遇到了完全相同的问题,我想出的最佳解决方案如下(我真的不想为body标签上的属性添加完全独立的布局)。 你在asp网络论坛上也有一些建议

我在视图包中添加了一个项目,一个名为BodyAttributes的(可能是过度的)通用名称:

ViewBag.BodyAttributes = "ng-app=\"moduleName\"";

然后我在body标签上用纯htlm渲染它

<body @Html.Raw(ViewBag.BodyAttributes)>

这样可以保持布局非页面特定,并且不需要在每个视图上引导角度。 此外,角度是否自动引导现在可以从它所属的视图本身内进行控制。

暂无
暂无

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

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