Вы не можете передавать сложные объекты, используя GET в качестве ссылок действий.Если вы хотите сделать это, вам нужно будет отправить все свойства, одно за другим, и оставить привязку по умолчанию для модели, но это может быть очень утомительным:
<%: Html.ActionLink(
"Move to new category",
"editcategory",
"category",
new {
prop1 = item.Prop1,
prop2 = item.Prop2,
...
},
null
)%>
Я бы порекомендовал вам стандартный способДостижение которого заключается в передаче идентификатора категории, который вы готовы отредактировать:
<%: Html.ActionLink(
"Move to new category",
"editcategory",
"category",
new { id = item.Id },
null
) %>
и внутри действия контроллера извлеките соответствующую модель из хранилища:
public ActionResult EditCategory(int id)
{
Category model = ... fetch category from id
//some code
return View(model);
}
Затем соответствующий видбудет содержать форму с полями ввода для всех различных свойств категории, и именно действие POST, в которое вы отправите эту форму, может принять модель категории в качестве параметра действия:
[HttpPost]
public ActionResult EditCategory(Category category)
{
if (!ModelState.IsValid)
{
return View(model);
}
// some code to update the category
return RedirectToAction("Success");
}