У меня есть WebGrid, который построен с использованием модели я построить его, используя код ниже:WebGrid ActionLink как получить объект строки
Просмотр
@model IEnumerable<ExampleMVC4.Models.LicenseInfo>
@{
ViewBag.Title = "Licenses";
WebGrid grid = new WebGrid(Model);
}
<h2>Licenses</h2>
@grid.GetHtml(tableStyle: "table table-striped table-hover",
columns: new[] {
grid.Column("SerialNumber"),
grid.Column("Name"),
grid.Column("Organization"),
grid.Column("Email"),
grid.Column("DateActivated"),
grid.Column(header: "IsValid", format: item=>new HtmlString(Html.ActionLink((string)item.IsValid.ToString(), "Deactivate", new { @id = item.SerialNumber}).ToString()))
})
<p>@ViewBag.Message</p>
управления
public ActionResult Index()
{
var data = getLicenseInfoList();
return View(data);
}
[HttpPost]
public ActionResult Deactivate(string serialNum_)
{
if (serialNum_ != null)
{
ViewBag.Message = serialNum_;
}
return View();
}
Но я не могу попросите его позвонить по телефону Deactivate()
с серийным номером.
Что такое правильный способ обработки ActionLink
щелчок внутри WebGrid
?
Я хотел бы получить серийный номер в этом методе и изменить IsActive на true/false, а затем перезагрузить одну и ту же сетку. Сейчас я получаю сообщение об ошибке, которое может найти вид. – Farukh
Является ли метод контроллера теперь вызываемый и является параметром 'id', серийный номер, который вы ожидаете (т. это отвечает на ваш первоначальный вопрос?). –
Обратите внимание, что неясно, что вы пытаетесь сделать - все, что вы вызываете, - это «return View();», который возвратит представление с именем 'Deactivate', которое, как я подозреваю, не создано, и, вероятно, это не то, что вы хотите вернуть. Вам будет намного лучше использовать jquery/ajax для публикации серийного номера, обновления базы данных, возврата Json, указывающего успех (и обновления DOM - например, изменить текст ссылки из «Деактивировать» на «Активировать»), но это вопрос другого вопроса. –