1

我们正在寻找一个带有 url 的 mvc4 站点,例如

  • abc.com/site1/home/about
  • abc.com/site2/home/about

每个都指的是完全不同的网站/页面

现在菜单项 - home/about/contact/... 等也与用户定义的文本和链接不同

~/Views/Shared/_Layout.cshtml 中的以下代码将从

                <ul id="menu">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                </ul>

会变成

            <ul id="menu">
                @foreach( var nav_config in dbHelper.getConfig(HttpContext.Current)) 
                       <li>@Html.ActionLink(nav_config.Text, "MyAction", "MyController")</li>
            </ul>

想知道是否有一种更简单的方法可以从视图中引用 {SiteName},它是下面链接中定义的 baseController 的属性

还是从 config db 获取菜单的更好方法?

{SiteName} 是使用有问题的答案实现的 - 将 {sitename} 参数传递给 MVC 控制器操作

4

1 回答 1

0

严格来说,视图不应该关心它服务于什么。您的参数是基本模型属性的主要候选者。

让所有模型实现以下基类:

public abstract class ModelBase
{
    public string SiteName { get; set; }
}

然后更改您的布局以使用模型ModelBase

然后用你想要的任何东西和任何你想要的地方填充它。

于 2013-05-07T20:57:44.197 回答