0

質問と回答の2つのビューがあります。質問ビュー、詳細アクションから、回答ビュー、アクションの作成にリダイレクトしたいので、次のように配置しました。

@Html.ActionLink(Model.QuestionId.ToString(), "Create", "Answer", "Answer", new { id = Model.QuestionId })

および回答ビュー:

public ActionResult Create(string id)
{
    (...)
    return View();
} 

ただし、Create(string id)のidは常にnullです。この値を正しく渡すにはどうすればよいですか?

4

2 に答える 2

3

ActionLinkヘルパーの誤ったオーバーロードを使用しています。そのはず:

@Html.ActionLink(
    Model.QuestionId.ToString(),     // linkText
    "Create",                        // actionName
    "Answer",                        // controllerName
    new { id = Model.QuestionId },   // routeValues
    null                             // htmlAttributes
)

生成する

<a href="/answer/create/123">123</a>

あなたが使用している間:

@Html.ActionLink(
    Model.QuestionId.ToString(),     // linkText
    "Create",                        // actionName
    "Answer",                        // controllerName
    "Answer",                        // routeValues
    new { id = Model.QuestionId }    // htmlAttributes
)

これは以下を生成します:

<a href="/Answer/Create?Length=6" id="123">123</a>

アンカーが機能しない理由を理解するのは今では難しくないと思います。

于 2012-08-17T22:33:42.797 に答える
0

間違った過負荷を選択したようですActionLink。これを試して:

@Html.ActionLink(Model.QuestionId.ToString(), "Create", "Answer", new { id = Model.QuestionId }, null)
于 2012-08-17T22:33:35.077 に答える