0

如果被问了很多次,不要打我。
我看过很多关于如何使用 MVC 编辑实体的精彩演示。他们只希望我的编辑表单只包含 3 个字段,这些字段当然是可编辑的,因此能够在客户端和服务器之间轮换数据,直到用户最终输入正确的值。但我的应用程序有点复杂,我需要你的建议。
1)我有一个实体 Product 具有字段 Name 和 CreatedBy
2)唯一可编辑的字段是 Name
3)如果输入不正确,我需要用最好的方式重新填充不可编辑的字段

为此,我需要从 repo 中检索业务对象并将缺失值分配给结果视图模型。可以有很多值。我应该逐步分配它们吗?我应该使用(尝试)UpdateModel 吗?我应该使用 AutoMapper(从未尝试过)之类的东西来指定如何相互更新实体吗?为此使用了哪些常用方法?请在包含超过 3 个可编辑字段的编辑表单上提供任何链接...谢谢!

4

1 回答 1

0

根据您的评论,“它们没有存储在隐藏中,但如果模型无效,那么我需要向用户返回一个包含可编辑和不可编辑值的视图。在控制器中我只得到可编辑的值,我需要把别人放在我的手上。” 以下是如何做到这一点:

<HttpPost()>
Function Create(company As Company) As ActionResult

    If ModelState.IsValid Then

        db.Companies.Add(company)
        db.SaveChanges()
        Return RedirectToAction("Index")

    End If

    ' if model state is not valid
        Return RedirectToAction("MyNewAction")

End Function

如果您的模型状态无效,则发送到另一个操作(或视图,如果您愿意)。如果您需要创建一个单独的模型,您可以这样做,然后将模型与您添加的字段一起发送到新视图。

于 2012-09-07T15:30:11.417 回答