0

我正在尝试做的是根据 url 动态显示公司名称的欢迎字符串,即 MVC 4 Internet 应用程序中“您的徽标在此处”的区域。所以如果我在http://aaa.com我想说welcome to aaa

我所做的是替换

<p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>

@Html.Partial("_Company")

在我做的 _Company 视图@Html.RenderAction( "Company", "Home") 和我使用的 HomeController 中

public ActionResult HospitalInfo()
        {
           var url = GetUrlMethod();
           return PartialView("_Company ", new { name = url });
        }

谁能告诉我我的想法是否正确?或者你能帮我改进方法吗?目前,我的代码根本不起作用......

4

3 回答 3

1

如果您只对字符串感兴趣,则无需使用自己的控制器操作来启动单独的局部视图。只需创建一个辅助函数,在其中操作 URL,然后直接从您的视图中调用该函数。

。CS:

public static string GetCustomWelcomeString()
{
    string customString;

    // use System.Web.HttpContext.Current.Request.Url here to do the cool stuff

    return customString;
}

.cshtml:

<p class="site-title">@MyClass.GetCustomWelcomeString()</p>

对于架构上更简洁的解决方案,请考虑在主控制器操作中预先计算此标题并将其作为模型字段返回,以便视图可以直接使用 @Model.CustomWelcomeString 或类似的东西来使用它。

于 2013-07-11T06:55:54.763 回答
0

我最终使用了@ViewBag.CompanyName 并创建了一个基本控制器,所有其他控制器都继承自该控制器。并创建一个将公司名称字符串传递给@ViewBag.CompanyName 的操作方法。

到目前为止,一切都很好。

于 2013-07-12T00:01:07.537 回答
0

尝试使用请求对象:

<p>Host is @Request.Url.Host</p>

您可以根据需要拆分 URL,但不需要转到控制器来获取它

于 2013-07-11T07:01:11.243 回答