首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免使用空值进行更新

如何避免使用空值进行更新
EN

Stack Overflow用户
提问于 2013-02-01 00:46:20
回答 1查看 514关注 0票数 0

全。或多或少是MVC的新手,所以不确定如何处理这个问题。

我有一个从数据库表(大约100列)生成的数据模型。申请表被分解为6-7个视图。第一个视图创建一个新记录并将其插入到数据库中。其余的视图假设从表单中收集信息并更新创建的记录。

代码语言:javascript
复制
    [HttpPost]
    public ActionResult GeneralInfo(ADP.Models.ADPRegistration _registration)
    {
        try
        {

            ADP.Models.IS_WEBEntities _test = new IS_WEBEntities();
            _test.ADPRegistrations.Attach(_registration);
            _test.ObjectStateManager.ChangeObjectState(_registration, System.Data.EntityState.Modified);
            _test.SaveChanges();

            return View("ReferralMethod",_registration);

        }

        catch(Exception er)
        {
            return View();
        }
    }

这是更新我的表的通用代码,它在所有视图中都是相似的。将模型传递回视图的原因是为了在视图之间保留ID。

我遇到的问题是,我的实体_registration包含所有的表字段,所以当发送视图时,只有视图中的字段会更新,以前的列都是NULL,因为我猜视图中不存在这些字段。我似乎也无法通过数据库优先模型进行枚举。

EN

回答 1

Stack Overflow用户

发布于 2013-02-01 01:42:41

你是正确的,当MVC在POSTback中重组你的模型时,任何不在表单中的字段在你的模型中都将为空。

您的选择是在视图中包含隐藏的字段:

代码语言:javascript
复制
@Html.HiddenFor(model => model.SomeValue)

或者在post之后更新模型,但在将其传递到验证和存储库层之前:

代码语言:javascript
复制
ModelState.SetModelValue("Name", new ValueProviderResult("Some string",string.Empty,new CultureInfo("en-US")));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14630868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档