我有改变文本框的值在MVC 3无法更改在ASP.NET MVC文本框的值3
我有一个是由控制器返回,是一个简单的查看问题键入到自定义视图模型。视图上有一个文本框,它绑定到视图模型上的字符串属性。如果我在初始加载时填充此字符串,则文本框值包含字符串的值。但是,如果我然后将表单发回到同一个URL并更改视图模型字符串值并重新加载视图,则文本框包含回传的值,而不是控制器为视图模型提供的值。
我创建了一个简单的测试项目,以尽可能最简单的方式重新创建问题。
视图模型:
http://www.codetunnel.com/content/images/textboxproblem/ViewModel.jpg
控制器:
http://www.codetunnel.com/content/images/textboxproblem/Controller.jpg
检视:
http://www.codetunnel.com/content/images/textboxproblem/View.jpg
在我显示视图模型的字符串值,我也结合字符串属性到视图一个文本框。
初始加载一切都看起来不错:
http://www.codetunnel.com/content/images/textboxproblem/InitialLoadTest.jpg
但是,如果我改变文本框的值,然后按Enter键以岗位作为我所期望的格式的事情不会发生。所显示的值是值的操作方法设置控制器,但文本框保留了被调回的价值:我不知道是什么问题
http://www.codetunnel.com/content/images/textboxproblem/POSTTest.jpg
。任何见解都会被赞赏。
谢谢你。我不敢相信我没有考虑ModelState,因为这是验证如何显示值时的工作原理。感谢counsellorben。 – Chev
不客气。这只是一件可能会让人迷惑的事情,因为它似乎倒退到首先绑定到ModelState。由于所传递的模型是开发人员最近的意图,所以您会期望这是第一个。这就是生活。 – counsellorben
任何洞察力为什么这是?我在过去经历过这样的事情,正如你所说的,它正在误入歧途。我只能假设他们有一个很好的理由这样做.. – egoodberry