我正在尝试在强类型剃刀视图中编辑项目列表.模板不允许我在单个视图中编辑对象列表,因此我将List视图与Edit视图合并.我只需要在复选框中编辑一个布尔字段.
问题是我无法将数据恢复到控制器.我该怎么做?的FormCollection?可视数据?提前致谢.
问题是我无法将数据恢复到控制器.我该怎么做?的FormCollection?可视数据?提前致谢.
这是代码:
楷模:
public class Permissao { public int ID { get; set; } public TipoPermissao TipoP { get; set; } public bool HasPermissao { get; set; } public string UtilizadorID { get; set; } } public class TipoPermissao { public int ID { get; set; } public string Nome { get; set; } public string Descricao { get; set; } public int IndID { get; set; } }
控制器动作:
public ActionResult EditPermissoes(string id) { return View(db.Permissoes.Include("TipoP").Where(p => p.UtilizadorID == id)); } [HttpPost] public ActionResult EditPermissoes(FormCollection collection) { //Todo: Get data from view return RedirectToAction("GerirUtilizadores"); }
视图:
@model IEnumerable<MIQ.Models.Permissao> @{ ViewBag.Title = "EditPermissoes"; } @using (Html.BeginForm()) { <table> <tr> <th></th> <th> Indicador </th> <th> Nome </th> <th>Descrição</th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @Html.CheckBoxFor(modelItem => item.HasPermissao) </td> <td> @Html.displayFor(modelItem => item.TipoP.IndID) </td> <td> @Html.displayFor(modelItem => item.TipoP.Nome) </td> <td> @Html.displayFor(modelItem => item.TipoP.Descricao) </td> </tr> } </table> <p> <input type="submit" value="Guardar" /> </p> }
解决方法
How do i do it? FormCollection? Viewdata?
以上都不是,使用视图模型:
[HttpPost] public ActionResult EditPermissoes(IEnumerable<Permissao> model) { // loop through the model and for each item .HasPermissao will contain what you need }
在视图内部而不是编写一些循环使用编辑器模板:
<table> <tr> <th></th> <th> Indicador </th> <th> Nome </th> <th>Descrição</th> <th></th> </tr> @Html.EditorForModel() </table>
并在相应的编辑器模板内(〜/ Views / Shared / EditorTemplates / Permissao.cshtml):
@model Permissao <tr> <td> @Html.CheckBoxFor(x => x.HasPermissao) </td> <td> @Html.displayFor(x => x.TipoP.IndID) </td> <td> @Html.displayFor(x => x.TipoP.Nome) </td> <td> @Html.displayFor(x => x.TipoP.Descricao) </td> </tr>
原文地址:https://www.jb51.cc/aspnet/248177.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。