0

自分の ID (URL の「27」、次のビューへ) を運ぶにはどうすればよいですか?

私の最初のビューの URL:

http://localhost:11956/Forum/Details/27

このビューでは、ActionLink で新しいビューを開きますが、新しいウィンドウには ID がありません。これが私が立ち往生した場所です。私@Url-id...は何か他のことをすることができますか、それとも C# ForumContrller でそれを処理する方がよいでしょうか? はいの場合、どうすればそれを行うことができますか?

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id=@Url-id... })
4

2 に答える 2

1

{id}ルートのパラメーターの値は、RouteDataコレクションに格納されます。これは、次のようにビューからアクセスできます。

@ViewContext.RouteData["id"]

したがって、コードは次のようになります。

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id= ViewContext.RouteData["id"] })

ただし、コントローラー アクションでモデルのプロパティにその ID を割り当てることを真剣にお勧めします。これは、View が依存関係やルーティングの知識を実際に持つべきではないためです。何かのようなもの:

class ForumController : Controller
{
    public ActionResult Detail(int id)
    {
        Forum model = LoadForumById(id);
        return View(model); // Forum has an "Id" property
    }
}

ビューのアクション リンク コードは次のようになります。

@Html.ActionLink("Post reply", "CreateTopicMessage" , new { id = Model.Id })
于 2013-09-22T03:42:25.263 に答える
0

あなたの構文は少しずれていると思います:

@Html.ActionLink(
"Post Reply",
"CreateTopicMessage", 
"Forum", //I'm guessing here
 new { id = @Url-id }, //assign your route value
 null //for html attributes, it can be left null
)
于 2013-09-22T01:59:08.127 に答える