任何人都可以给我一个在ASP.NET MVC中的模型状态(或链接到一个)的angular色简洁的定义。 特别是我需要知道在什么情况下调用ModelState.Clear()是必要或可取的。 位开放式的呵呵 …对不起,我想这可能会帮助,如果告诉你我正在做什么: 我有一个名为“页面”的控制器上的编辑动作。 当我第一次看到表单来改变页面的细节时,所有东西都加载正常(绑定到“MyCmsPage”对象)。 然后,我单击一个button,为MyCmsPage对象的一个字段( MyCmsPage.SeoTitle )生成一个值。 它生成罚款和更新的对象,然后返回与新修改的页面对象的行动结果,并期望相关的文本框(呈现使用<%= Html.TextBox("seoTitle", page.SeoTitle)%> )被更新。 ..但唉,它显示了旧的模型加载的价值。 我已经通过使用ModelState.Clear()来解决它,但我需要知道为什么/如何工作,所以我不只是盲目地做。 的PageController: [AcceptVerbs("POST")] public ActionResult Edit(MyCmsPage page, string submitButton) { // add the seoTitle to the current page object page.GenerateSeoTitle(); // why must I do this? ModelState.Clear(); // return the modified page object return View(page); } ASPX: <%@ Page Language="C#" […]
我有各种简单的ASP.NET MVC视图的CRUD操作,它们自己作为一个简单的网页很好地工作。 我现在将它们整合到网站本身(进入内容),并有例如链接,如“创build新的职位”,将启动一个选定的灯箱克隆的视图(不知道哪一个,可能是彩盒或厚盒,但这并不重要)。 我想要实现的是,视图本身以某种方式检测到它是在JavaScript UI对话框中打开的,所以Form动作(通常是使用简单的Submitbutton的POST)将会用一个逻辑来呈现,行动已经完成。 现在工作的方式是POST / Redirect / GET。 视图应该仍然支持这个简单的模式,当直接通过URL在网页浏览器中打开,但应通过JavaScript对话框打开时提供一些额外的逻辑。 希望你能理解我的问题。 任何帮助赞赏
请纠正我,如果我错了,但我想所有我的非AJAX提交应使用Post / Redirect / Get(PRG)方式,因为GET应该用于刷新/查询数据,在我的情况,我能想到的应用程序页面实际上只是对数据进行更新,然后刷新页面,所以我认为PRG适合这里。 我相信我可以使用faces-config.way来做到这一点,在那里我使用<redirect/> ,或者我可以使用return "myview.xhtml?faces-redirect=true"; 现在的问题是.. 有没有什么办法可以在全局configuration这个非AJAX调用/提交,自动使用faces-redirect = true,这样我的源代码就像这样简单: return "myview";