0

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

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

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

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

<html ng-app="business_rules">
4

3 回答 3

1

您可以在需要所有这些属性的地方创建一个布局,然后使用此布局为所需的页面引用

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

在这些页面的顶部。

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

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

public ActionResult Index()
{
    MyMOdel model = new MyMOdel ();
    //TO DO:
    return View("Index", "_AdminLayout", model);
}
于 2013-09-11T03:11:47.237 回答
1

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

<script>
$(document).ready(function(){
$('html').attr("ng-app", "business_rules")
});
</script>
于 2013-09-11T06:44:23.367 回答
0

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

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

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

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

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

这使您的布局不特定于页面,并且不需要在每个视图上引导角度。另外,现在是否从它​​所属的视图本身控制角度是否被引导。

于 2014-02-27T21:45:35.753 回答