2

可以说我_Layout.cshtml有这个:

 @if (ViewBag.SignUpURL == null)
        {   
            <a href="@Url.Content("~/Home/Join")" ><span>
                <strong>JOIN NOW!</strong></span></a>
        }
        else
        {         
            <a href="@ViewBag.SignUpURL" ><span>
                <strong>JOIN NOW!</strong></span></a>
        }

当我尝试ViewBag.SignUpURL填充

 public ActionResult Index()
        {
            ViewBag.SignUpURL = HttpContext.Request.Url.AbsoluteUri.Replace("Index", "SignUp");

            return View();
        }

Index查看使用_Layout.cshtml.

而且什么也没有发生...

一般来说,我需要以某种方式数据Layout从使用它的页面传递到页面。

有可能吗?

谢谢你!!!

更新:

在此处输入图像描述

4

2 回答 2

2

您应该考虑使用 Html.RenderAction() 它将返回到您指定的控制器操作,并且您将能够返回带有模型的局部视图:

看法:

@Html.RenderAction("GetSignUp")

控制器动作

public ActionResult GetSignUp()
{
//do your logic here

    return PartialView("_SignUp");
}
于 2012-11-21T22:29:06.480 回答
1

一切都很好。您可以使用 ViewBag 将一些数据传递给 Layout。但我认为这HttpContext.Request.Url.AbsolutePath不包含Index因为路由规则。

于 2012-11-21T22:29:37.203 回答