如何从@ Html.ActionLink cshtml页面为新打开的选项卡的TITLE设置名称

时间:2013-04-18 07:08:53

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

我在[{1}}页面中的当前代码:

Index.cshtml

上面的代码让我在点击@Html.ActionLinks(@Html.ActionLink(objList.Name, "Name", "ControllerName", new {Id=objList.Id}, new {target = "_blank"})) 页面中的链接后在新标签页中打开一个页面(Name.cshtml)。但我的目标是为新标签指定一个名称(Index)作为objList.Name。  因此,我在以下代码中添加了Title属性,但它没有按预期工作。

Title

如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

您必须将objList.Name作为参数传递给“Name”操作,在此操作中,您可以在Viewbag中包含该名称:

ViewBag.MyTitle = nameParameter;

在“名称”视图中:

<title>@ViewBag.MyTitle</title>

如果您使用的是布局页面,则只需将其放在“名称”操作中:

ViewBag.Title = nameParameter;

因为在你的布局视图中你可能有这个:

<title>@ViewBag.Title</title>

答案 1 :(得分:0)

我认为代码中的“标题”是在链接上添加鼠标悬停标题。

要在标签中添加标题,请使用carlos的解决方案(在标题页中放置标题标签和视图包)。

答案 2 :(得分:0)

只需将Name添加到RouteValueDictionary,将其添加到ActionResult,然后设置ViewBag.Title

首先,将您的ActionLink更改为:

Html.ActionLinks(@Html.ActionLink(objList.Name, "Name", "ControllerName", new {Id=objList.Id, Name=objList.Name}, new {target = "_blank"}))

然后创建一个模型(如果在Name表中没有模型),例如:

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

然后将您的Name ActionResult更改为:

    public ActionResult Name(int Id, string Name)
    {
        MyModel model = new MyModel 
        {
            Id = Id,
            Name = Name
        };

        return View(model);
    }

然后将模型添加到Name视图中:

@model MyModel

然后在ViewBag.Title视图中设置Name

ViewBag.Title = Model.Name;