Передача параметра в действие контроллера из Html.ActionLink
Что-то не так с этим html? Я хочу иметь ссылку на главной странице, чтобы перейти к представлению "CreateParts". У меня есть действие "CreateParts", у которого есть параметр parentPartId в контроллере "PartList".
<li id="taskAdminPartCreate" runat="server">
<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 })%></li>
Мое действие контроллера похоже на
public ActionResult CreateParts(int parentPartId)
{
HSPartList objHSPart = new HSPartList();
objHSPart.Id = parentPartId;
return View(objHSPart);
}
Когда я нажимаю "Создать новую часть" в меню в SiteMaster, я получаю исключение. Пожалуйста, помогите мне в этом.
Ответы
Ответ 1
Вы используете неправильную перегрузку. Вы должны использовать эту перегрузку
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
И правильный код будет
<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>
Обратите внимание, что дополнительный параметр в конце.
Для других перегрузок посетите LinkExtensions.ActionLink Method. Как вы видите, нет перегрузки string, string, string, object
, которую вы пытаетесь использовать.
Ответ 2
Вы используете неправильную перегрузку ActionLink. Попробуйте это
<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>
Ответ 3
Дополнение к принятому ответу:
если вы собираетесь использовать
@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null)
это создаст actionlink, где вы не сможете создать новый настраиваемый атрибут или стиль для ссылки.
Однако 4-й параметр в расширении ActionLink решит эту проблему. Используйте 4-й параметр для настройки на вашем пути.
@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" })