У меня есть метод GenerateLinks()
, который принимает объект ActionResult
с именем result
. В этом методе я хочу генерировать ссылки с использованием модифицированной версии result
, которая будет содержать дополнительный параметр id для каждого id
. Обратите внимание: HtmlHelper.ActionLink()
требует ActionResult
.Добавить параметры в существующий объект ActionResult
// Client-side
@Html.GenerateLinks(Mvc.Areas.MyArea.Index(), Model.ids);
// Server-side
MvcHtmlString GenerateLinks(this HtmlHelper helper, ActionResult result, List<string> ids)
{
var sb = new StringBuilder();
foreach (var id in ids)
{
// How to add id to result where result becomes Mvc.Areas.MyArea.Index(id)?
sb.Append(helper.ActionLink(id, result-with-id-as-param);
sb.Append("<br/>");
}
return new MvcHtmlString(sb.ToString());
}
Даже если я знаю, что есть альтернативные способы создания этих ссылок, помимо использования ActionLink
, мой окончательный вопрос: Можно ли добавить id
как пары к существующим ActionResult
объекту? Если да, то как?
Спасибо.
Мой код контроллер уже обрабатывает состояние по умолчанию. Мой вопрос: как я могу изменить объект «результат», чтобы перейти от «Mvc.Areas.MyArea.Index()» к «Mvc.Areas.MyArea.Index (id)», если это возможно? – MarkG
Да, просто передайте идентификатор. пока вы можете передать это действие из представления в контроллер, он должен работать. 'Mvc.Areas.MyArea.Index (id)' – user3311522
Спасибо, я действительно нашел ответ: используйте 'GetRouteValueDictionary.Add()' следующим образом: 'result.GetRouteValueDictionary(). Добавить (« id », id);' I выведет более четкий ответ после истечения 8-часового окна. – MarkG