1

我有以下视图模型:

public class MyViewModel
{
    public int Id { get; set; }
    public string Title { get; set; }
    public int ParentClassId { get; set; }
    public List<AnotherClass> AnotherClassItems { get; set; }
}

在视图中,我只有 Title 的表单输入和不可编辑的 AnotherClassItems 列表 - 它们仅用于显示与类相关的项目列表。所有属性都是在“编辑”视图加载时设置的,但是当视图发布帖子时,ParentClassId 和 AnotherClassItems 列表为空。这是来自控制器的 HttpPost ActionResult:

[HttpPost]
public ActionResult Edit(FormCollection collection, MyViewModel myviewmodel)
{

     if (ModelState.IsValid)
     {

       //myviewmodel.ParentClassId and myviewmodel.AnotherClassItems are null??
     }
     return View(myviewmodel);
}

有没有办法在不将它们作为视图中的表单输入的情况下传递 ParentClassId 和 AnotherClassItems 属性?或者我应该为此使用 Viewbag 吗?

4

1 回答 1

0

请记住,表单只回发 HTML 输入字段。因此,如果您没有制作任何文本框或隐藏框,它们将不会发布到您的编辑操作中。

处理此问题的正确方法是将 ID 作为隐藏字段传递,然后从数据库/存储库中提取原始值。

然后将 Title 和 AnotherClassItems 的新值应用于您的模型并保存到存储库/数据库。

于 2015-06-30T18:03:04.803 回答