asp.net core mvc 2.1 向浏览器返回填充模型并丢失所有字段

卡尔

在控制器的 Create 操作中,根据用户输入,我们计划用一些数据填充模型对象,以尽量减少数据输入:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Item item, string str)
{
    // if only str is provided
    if (string.IsNullOrEmpty(item.KeyInfo) && !string.IsNullOrEmpty(str))
    {
        Helpers.FillItemModel(item, str);   //fill data
    }
    else if (ModelState.IsValid)
    {
        _context.Add(item);
        await _context.SaveChangesAsync();
        return RedirectToAction(nameof(Create));
    }

    return View(item);
}

但是,虽然我们可以确认 item 对象已经填充了几个字段的数据,但是通过在最后一行设置断点:return View(item),当浏览器收到响应时,所有字段都是空的。

但是如果我们把整个代码段都注释掉,只留下return语句,用一些手动输入的数据做一个post,浏览器会收到所有字段的正确数据。

感谢您的时间。

坦维尔·阿杰尔

要更新ModelState值,您必须ModelState按如下方式重置第一个:

// if only str is provided
 if (string.IsNullOrEmpty(item.KeyInfo) && !string.IsNullOrEmpty(str))
 {
    ModelState.Clear();
    Helpers.FillItemModel(item, str);   //fill data
 }

ModelState.Clear()将重置整个模型。如果您不想要那样并且只想更新几个字段值以保持其他字段值不变,那么ModelState["fieldName"].Value = "newValue在您的助手类中使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Asp.Net MVC Core 2 - 在 _Layout 上使用 ViewBag

来自分类Dev

包含2个域模型的ASP.NET Core MVC绑定视图模型

来自分类Dev

ASP.NET Core MVC 2:NameValueCollection 实例在服务器端为空

来自分类Dev

asp.net mvc core 2 脚手架生成控制器中的错误

来自分类Dev

1个控制器处理2个模型,ASP.NET,MVC5

来自分类Dev

ASP Net Core 1 RC2 AccountController注入

来自分类Dev

ASP.NET Core MVC 2.2失去模型价值

来自分类Dev

ASP.NET Core 3 MVC:对象列表的模型绑定

来自分类Dev

在 ASP .Net Core MVC 2.1 模型中访问 List<T>

来自分类Dev

ASP.NET Core MVC筛选器是否单例?

来自分类Dev

ASP.NET Core MVC MySQL服务器连接

来自分类Dev

带有JSONP的ASP.NET Core MVC

来自分类Dev

带有JSONP的ASP.NET Core MVC

来自分类Dev

在 ASP.net Core MVC 2 中使用 ASP.net MVC 5 脚手架

来自分类Dev

获取ASP.NET Core 1中的所有缓存

来自分类Dev

如何在 ASP.NET Core 2 MVC 中使用依赖注入设置单元可测试模型验证?

来自分类Dev

ASP.NET Core MVC视图附件

来自分类Dev

ASP .NET Core-回填已填充的模型

来自分类Dev

如何在Asp.net Core MVC(又名Asp.Net 5 RC1)中检查响应cookie?

来自分类Dev

与ASP.NET MVC BeginExecuteCore等效的ASP.NET Core

来自分类Dev

如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

来自分类Dev

ASP.NET MVC 4 Websecurity.CurrentUserId返回-1

来自分类Dev

ASP.NET MVC 4 Websecurity.CurrentUserId返回-1

来自分类Dev

如何在Asp.Net Core MVC 1.0(aka MVC 6 RC1)中访问会话超时值?

来自分类Dev

使用ASP .Net Core(非MVC)进行Angular 2路由

来自分类Dev

在ASP.NET MVC Core应用程序(RC2)中显示项目版本

来自分类Dev

如何从2个(或多个)独立下拉的ASP.NET Core MVC中获取数据?

来自分类Dev

如何为 Angular 2 和 ASP.NET Core MVC 共享环境变量

来自分类Dev

如何禁用ASP.NET Core rc2中的浏览器缓存?

Related 相关文章

  1. 1

    Asp.Net MVC Core 2 - 在 _Layout 上使用 ViewBag

  2. 2

    包含2个域模型的ASP.NET Core MVC绑定视图模型

  3. 3

    ASP.NET Core MVC 2:NameValueCollection 实例在服务器端为空

  4. 4

    asp.net mvc core 2 脚手架生成控制器中的错误

  5. 5

    1个控制器处理2个模型,ASP.NET,MVC5

  6. 6

    ASP Net Core 1 RC2 AccountController注入

  7. 7

    ASP.NET Core MVC 2.2失去模型价值

  8. 8

    ASP.NET Core 3 MVC:对象列表的模型绑定

  9. 9

    在 ASP .Net Core MVC 2.1 模型中访问 List<T>

  10. 10

    ASP.NET Core MVC筛选器是否单例?

  11. 11

    ASP.NET Core MVC MySQL服务器连接

  12. 12

    带有JSONP的ASP.NET Core MVC

  13. 13

    带有JSONP的ASP.NET Core MVC

  14. 14

    在 ASP.net Core MVC 2 中使用 ASP.net MVC 5 脚手架

  15. 15

    获取ASP.NET Core 1中的所有缓存

  16. 16

    如何在 ASP.NET Core 2 MVC 中使用依赖注入设置单元可测试模型验证?

  17. 17

    ASP.NET Core MVC视图附件

  18. 18

    ASP .NET Core-回填已填充的模型

  19. 19

    如何在Asp.net Core MVC(又名Asp.Net 5 RC1)中检查响应cookie?

  20. 20

    与ASP.NET MVC BeginExecuteCore等效的ASP.NET Core

  21. 21

    如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

  22. 22

    ASP.NET MVC 4 Websecurity.CurrentUserId返回-1

  23. 23

    ASP.NET MVC 4 Websecurity.CurrentUserId返回-1

  24. 24

    如何在Asp.Net Core MVC 1.0(aka MVC 6 RC1)中访问会话超时值?

  25. 25

    使用ASP .Net Core(非MVC)进行Angular 2路由

  26. 26

    在ASP.NET MVC Core应用程序(RC2)中显示项目版本

  27. 27

    如何从2个(或多个)独立下拉的ASP.NET Core MVC中获取数据?

  28. 28

    如何为 Angular 2 和 ASP.NET Core MVC 共享环境变量

  29. 29

    如何禁用ASP.NET Core rc2中的浏览器缓存?

热门标签

归档