Передача параметра в действие контроллера из Html.Actionlink панели
что-то не так с этим html? Я хочу иметь ссылку в masterpage для перехода к представлению "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, я получаю исключение. Пожалуйста, помоги мне выбраться.
3 ответов
вы используете некорректные перегрузки. Вы должны использовать эту перегрузку
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 Панели. Как вы можете видеть нет string, string, string, object
перегрузка, которую вы пытаетесь использовать.
вы используете неправильную перегрузку ActionLink. Попробуйте это
<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>
дополнение к принятому ответу:
Если вы собираетесь использовать
@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" })