我想要做的是在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 });
}
任何人都可以告诉我,如果我的想法是否正确?或者你可以帮助我改进方法吗?目前,我的代码根本不起作用......
答案 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。
到目前为止一切顺利。