Подтвердить что ты не робот

Передача параметра в действие контроллера из 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, я получаю исключение. Пожалуйста, помогите мне в этом.

4b9b3361

Ответ 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" })