我有2个观点:问题和答案。从问题视图,详细操作我想重定向到答案视图,创建操作,所以我放置了:
@Html.ActionLink(Model.QuestionId.ToString(), "Create", "Answer", "Answer", new { id = Model.QuestionId })
并在答案视图中:
public ActionResult Create(string id)
{
(...)
return View();
}
但Create(字符串id)中的id始终为null。如何正确传递此值?
答案 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)