asp.net-core – ASP.NET核心 – 在帖子后更改表单值
发布时间:2020-12-16 07:20:39 所属栏目:asp.Net 来源:网络整理
导读:我可能错过了一些非常明显的东西,但我想要做的就是有一个简单的表单,允许它POST,更改其中一个字段,当它返回时它应该显示更改的值.简单吧? 该模型如下所示: public class TestModel{ public string Field1 { get; set; } public string Field2 { get; set;
我可能错过了一些非常明显的东西,但我想要做的就是有一个简单的表单,允许它POST,更改其中一个字段,当它返回时它应该显示更改的值.简单吧?
该模型如下所示: public class TestModel { public string Field1 { get; set; } public string Field2 { get; set; } } 控制器动作: public IActionResult Test() { return View(new TestModel()); } [HttpPost] public IActionResult Test(TestModel model) { model.Field1 = "changed"; // this seems to be ignored return View(model); } 风景: @model AspNetCoreTest1.Models.TestModel <form method="post" asp-controller="Home" asp-action="Test"> <input asp-for="Field1" /> <br /> <input asp-for="Field2" /> <br /> <button type="submit">Send</button> </form> 我可以看到表单并返回POST(我可以看到我在模型中输入的值),但在POST后,表单仍然显示我输入的值.它没有显示第一个字段的更改. (我使用的是ASP.NET Core 1.1) 思考? 解决方法
我们无法直接对传递的模型进行更改,并希望它能在UI中反映出来.您的问题的解决方案如下.
替换此行代码model.Field1 =“changed”;如果您使用的是C#6.0,请使用以下内容: ModelState.FirstOrDefault(x => x.Key == nameof(model.Field1)).Value.RawValue = "changed"; 对于早期的C#版本: ModelState.FirstOrDefault(x => x.Key == "Field1")).Value.RawValue = "changed"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – 通过F#代码迭代插入ASP.NET MVC4
- 在ASP.NET MVC2创建方法中使用FormCollection的正
- asp.net-mvc – ASP.NET MVC,自动完成文本框,缓存
- asp.net-mvc – 如何在ASP MVC中自定义Html.Vali
- asp.net – 在.NET中向单个HTTP请求发送多个HTTP
- 如何在ASP.NET应用程序中使用jQuery捕获提交事件
- asp.net-mvc – 使用带有IEnumerable的Html.Edit
- asp.net-mvc – MVC 3 – 脚手架下拉列表
- asp.net – Web.Config无法呈现特殊字符
- 【开源小软件 】Bing每日壁纸 让桌面壁纸保持更新
热点阅读