在“您的徽标”中动态显示欢迎字符串

时间:2013-07-11 06:38:53

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

我想要做的是在MVC 4 Internet applcation中根据url“你的徽标在这里”的区域动态显示公司名称的欢迎字符串。 所以如果我在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 });
        }

任何人都可以告诉我,如果我的想法是否正确?或者你可以帮助我改进方法吗?目前,我的代码根本不起作用......

3 个答案:

答案 0 :(得分:1)

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

的.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或类似的东西直接使用它。

答案 1 :(得分:0)

尝试使用请求对象:

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

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

答案 2 :(得分:0)

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

到目前为止一切顺利。