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を使用して、一部のデータをレイアウトに渡すことができます。しかし、ルーティングルールのため、これHttpContext.Request.Url.AbsolutePathは含まれていないと思います。Index

于 2012-11-21T22:29:37.203 に答える