ASP.NET MVC - 在视图之间传递值

时间:2012-08-17 22:29:42

标签: asp.net-mvc view

我有2个观点:问题和答案。从问题视图,详细操作我想重定向到答案视图,创建操作,所以我放置了:

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

并在答案视图中:

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

但Create(字符串id)中的id始终为null。如何正确传递此值?

2 个答案:

答案 0 :(得分:3)

您正在使用错误的overload 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>

我认为现在不难理解为什么你的锚不起作用。

答案 1 :(得分:0)

您似乎选择了错误的ActionLink重载。试试这个:

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