如何设置控制器的默认视图?

时间:2014-08-27 18:38:19

标签: c# asp.net-mvc razor asp.net-mvc-5

我的控制器中有一些东西在所有视图中共享。因此,我尝试使用以下代码创建_default.cshtml并设置视图的布局:Layout = "_default.cshtml";

这是我的_default.cshtml

@{
    ViewBag.Title = "ahmadali shafiee";
}

@section links{
    <ul id="links">
        <li class="inner-li-en inner-li">
            <a href="~/en/about">about</a>
        </li>
        <li class="inner-li-en inner-li">
            <a href="http://2barnamenevis.com">blog</a>
        </li>
        <li class="inner-li-en inner-li">
            <a href="">projects</a>
        </li>
        <li class="inner-li-en inner-li">
            <a href="http://photo.ahmadalli.net">photoblog</a>
        </li>
        <li class="inner-li-en inner-li">
            <a href="mailto:mail@ahmadalli.net">contact</a>
        </li>
    </ul>
}

@section lang{
    <div id="lang-fa" class="lang"><a href="fa">فارسی</a></div>
}

@RenderBody()

这是我的观点:

@{
    Layout = "_default.cshtml";
}

Some other content

但输出不是我预期的结果。它使用_default.cshtml作为最终布局,但应使用_layout.cshtml,因为我没有在_default.cshtml中设置布局。

2 个答案:

答案 0 :(得分:0)

您可以在应用程序的Views文件夹中的_ViewStart.cshtml中设置它,就像您在页面中一样。

答案 1 :(得分:0)

似乎逻辑“如果视图没有layout,那么使用_ViewStart.cshtml”是不正确的,我必须将Layout = "~/Views/Shared/_Layout.cshtml";添加到我的_default.cshtml这解决了这个问题。