Asp.net MVC ModelState.Clear

2023-12-25

谁能给我一个关于 ModelState 在 Asp.net MVC 中的作用的简洁定义(或者一个链接)。我特别需要知道在什么情况下有必要或需要打电话ModelState.Clear().

有点开放式结局吧...抱歉,我认为告诉您我实际上在做什么可能会有所帮助:

我在名为“Page”的控制器上有一个编辑操作。当我第一次看到更改页面详细信息的表单时,一切都加载正常(绑定到“MyCmsPage”对象)。然后,我单击一个按钮,为 MyCmsPage 对象的字段之一生成一个值(MyCmsPage.SeoTitle)。它生成良好并更新对象,然后我使用新修改的页面对象返回操作结果,并期望相关文本框(使用渲染<%= Html.TextBox("seoTitle", page.SeoTitle)%>)要更新...但可惜它显示了已加载的旧模型的值。

我已经通过使用解决了这个问题ModelState.Clear()但我需要知道它为什么/如何起作用,这样我才不会盲目地这样做。

页面控制器:

[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#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyCmsPage>" %>
....
        <div class="c">
            <label for="seoTitle">
                Seo Title</label>
            <%= Html.TextBox("seoTitle", page.SeoTitle)%>
            <input type="submit" value="Generate Seo Title" name="submitButton" />
        </div>

我认为这是 MVC 中的一个错误。今天我在这个问题上挣扎了几个小时。

鉴于这种:

public ViewResult SomeAction(SomeModel model) 
{
    model.SomeString = "some value";
    return View(model); 
}

视图使用原始模型渲染,忽略更改。所以我想,也许它不喜欢我使用相同的模型,所以我尝试这样:

public ViewResult SomeAction(SomeModel model) 
{
    var newModel = new SomeModel { SomeString = "some value" };
    return View(newModel); 
}

并且视图仍然以原始模型呈现。奇怪的是,当我在视图中放置断点并检查模型时,它的值发生了变化。但响应流具有旧值。

最终我发现了与您所做的相同的工作:

public ViewResult SomeAction(SomeModel model) 
{
    var newModel = new SomeModel { SomeString = "some value" };
    ModelState.Clear();
    return View(newModel); 
}

按预期工作。

我不认为这是一个“功能”,是吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.net MVC ModelState.Clear 的相关文章

  • 当视图模型类型为包含超过 4 个项目的元组时,Asp.net mvc 2 .net 4.0 出现错误

    当我在 Asp net mvc 2 net 4 0 中使用模型类型 Tuple 创建强类型视图时 当 Tuple 具有超过 4 个项目时 我会收到错误 示例1 视图类型是Tuple
  • T4MVC Base 控制器没有默认构造函数

    我的控制器是从另一个没有默认构造函数的控制器继承的 T4MVC 生成以下构造函数 假设基本控制器具有默认构造函数 protected MyControllerController Dummy d 我该如何解决这个问题 有趣的是 根据this
  • MVC ASP.NET 或 Razor

    我对 MVC 很陌生 我对 Silver light WPF 和 MVVM 有相当多的了解 但对 MVC 知之甚少 我正在按照 Microsoft 网站上的主要教程进行操作http www asp net mvc tutorials get
  • 重定向到其他控制器中的操作

    我想从一个控制器中的操作重定向到第二个控制器中的操作 通常我会使用 RedirectToAction actionName controllerName objects 我想要重定向到的方法有两个重载 一个用于 HttpVerbs Get
  • ASP.NET MVC 防伪造令牌不安全

    在没有 ssl 的情况下向服务器发出请求时 我实际上可以看到 MVC3 框架以纯文本形式生成的验证令牌密钥 该密钥存储在名为 RequestVerificationToken Lw 的 cookie 中 在混合安全环境中 实际上可以在向非
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 如何在单击按钮时重新绑定 igGrid igniteUI 控件中的数据?

    我在 ASP NET MVC3 应用程序中使用 Infragistics Ignite UI 控件 我有一个已绑定到 客户 数据的网格 工作正常 现在我有按钮了 单击后我会进行 ajax 调用 在控制器中 我编写了仅选择 客户 数据的一部分
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 在 var 中渲染多个空格

    我试图在我的 var 中添加多个空格 但它被削减为一个空格或者呈现出来 仿佛 我尝试过使用 20 有人还有其他想法吗 ViewBag Subheading 曝光 我希望它看起来像这样 曝光 ViewBag Subheading Bringi
  • ASP.NET MVC 路由如何工作?

    我定义了以下路线 public static void RegisterRoutes RouteCollection routes routes IgnoreRoute resource axd pathInfo routes MapRou
  • 在 ASP.NET MVC 中设置默认 JSON 序列化器

    我正在开发一个已部分转换为 MVC 的现有应用程序 每当控制器响应 JSON ActionResult 时 枚举都会以数字形式发送 而不是字符串名称 听起来默认的序列化程序应该是 JSON Net 它应该将枚举作为其名称而不是整数表示形式发
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 在 ASP.Net MVC 中的同一视图中分离两个表单

    我已将创建帐户视图和登录视图合并到同一视图中 所以这是一个具有两种表单的视图 但是当我提交时它们会混合在一起 如果我尝试登录并显示错误 Html ValidationSummary 两种形式都会出现错误 我开始将字段重命名为 loginPa
  • ASP.NET MVC 框架是否支持异步页面执行?

    我正在学习 ASP NET MVC 框架 来自一些文章 例如this http weblogs asp net stephenwalther archive 2008 03 17 asp net mvc in depth the life
  • 以编程方式设置 aspnet:MaxHttpCollectionKeys

    在特定网站的一些管理功能中 我正在做一篇特别可怕的帖子 需要一个large要发布的数据量 为了实现这一点 我必须添加 Web config appSetting https stackoverflow com questions 88324
  • “RouteCollection”不包含“MapMvcAttributeRoutes”的定义

    我尝试使用基于属性的路由 但是当我尝试以下代码片段来激活基于属性的路由时 我收到以下错误消息 RouteCollection 不包含定义 MapMvcAttributeRoutes 这是我的代码 public class RouteConf
  • bootstrap css中垂直对齐缩略图?

    我认为这应该很简单 但我就是无法让它发挥作用 在 ASP NET MVC 中 我有一个如下所示的项目列表 div class row div class span12 ul class thumbnails foreach var film
  • 为什么 httpRuntime targetFramework="4.5" 禁止抓取 .ASPXAUTH cookie?

    当我的 web config 具有以下 httpRuntime 时 我的控制器无法获取 cookie ASPXAUTH 它似乎能够获取任何其他 cookie 无论带或不带句点前缀 如果我删除下面的行 它就可以正常工作
  • 将 Web API 添加到 asp.net MVC 项目时出现问题(追溯)

    我正在 Visual Studio 2013 中使用 asp net mvc 迈出第一步 但遇到了一个奇怪的问题 我以 MVC 的形式启动了我的项目 并且没有选中 Web API 框来包含核心参考 不过现在我想使用 Web API 功能 我
  • 使用 MVC5、Ajax、C# 和 MSSQL Server 级联 DropdownList

    我对来自 Windows 窗体和三层架构的 MVC 非常陌生 我试图找出使用从数据库填充的级联下拉列表 DDL 我使用 MS SQL Server 2012 VS 2013 目前我正在研究用户调查问卷 用户可以从 DDL 的多个答案中进行选

随机推荐

  • 在scala中创建多维数组

    我正在解析这样的 json 对象 val product array Option Any scala util parsing json JSON parseFull products json var product array2 Ar
  • 当值具有实体时,Selenium WebDriver get_attribute 返回 href 属性的截断值

    我正在尝试使用 selenium Webdriver Python 从应用程序页面上的锚点选项卡获取 href 属性值 并且返回的结果已被剥离 这是 HTML 片段 a class nla row text href shopping br
  • 有效计算两个 std::multimap 迭代器之间的条目数

    我想计算两个迭代器之间的条目数std multimap在不到 O N 的时间内 有什么技巧或巧妙的方法可以做到这一点吗 Since std multimap有双向迭代器 我的理解是这样的std distance可以在 O N 时间内完成 其
  • 自举流体和静态容器

    我正在尝试在单页引导布局中将流体容器与固定容器结合起来 我想要的是 例如 有一个大图像作为英雄单元 但不是英雄单元 视口的 100 宽度 高度 或者 3 列图像除以 100 但在其他情况下 在同一页面内 它将具有最大 1200px 容器以及
  • JavaScript 代码约定 - 变量声明 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP中有pdf模板的解决方案吗?

    我需要通过 PHP 生成 pdf 格式的报价 并使用模板和从数据库检索的动态值 它可行吗 更新 我看到人们最近对此表示赞同 并想补充一点wkhtml转pdf http code google com p wkhtmltopdf对于大多数应用
  • pymssql 抛出 ImportError: 使用 py2exe 构建应用程序时没有名为 _mssql 的模块

    我有 python 应用程序应该作为 Windows 可执行文件启动 我正在使用 py2exe 和 pymssql 1 9 908 我使用下一个构建脚本来生成应用程序 from distutils core import setup imp
  • 使用具有相同控制器的 STI 路径

    我正在使用 STI 想知道是否必须为每个型号配备单独的控制器 我遇到了一种情况 我只对 STI 关系中的一个模型使用创建和编辑操作 但如果我尝试为其创建表单 则会收到 未定义方法 错误 更具体地说 我有两个继承自 List 的模型 clas
  • Emacs lisp 计算 alist 中的变量

    这是一个后续问题Emacs Lisp 评估列表中的变量 https stackoverflow com questions 1664202 emacs lisp evaluate variable in alist 我正在尝试设置defau
  • Android中动态设置TextView的宽度和高度

    我正在尝试动态设置 TextView 宽度 使用setWidth width method txtviewOne setWidth 10 txtviewTwo setWidth 10 但没有成功 请帮助我如何动态设置textview的宽度
  • Python的collections.Counter和nltk.probability.FreqDist之间的区别

    我想计算文本语料库中单词的术语频率 我已经使用 NLTK 的 word tokenize 和probability FreqDist 一段时间来完成这项工作 word tokenize 返回一个列表 通过 FreqDist 将其转换为频率分
  • 在android中复制列表项

    我找到了一个示例 它在列表视图中显示所有联系人 并让您呼叫单击的联系人 但是 我只想复制联系电话放在剪贴板上 并在选择列表项时显示 toast public class ContactListActivity extends Activit
  • Ansible:检查服务是否正在侦听特定端口

    您将如何使用 Ansible 来确认服务是否正在特定端口上运行 例如 Apache 是否在端口 80 上运行 MySQL 是否正在监听 3912 端口 Tomcat 正在监听 8080 端口吗 据我了解 有service and wait
  • 外部接口和 Internet Explorer 9 问题

    天哪 我讨厌外部接口吗 我有一个视频播放器 它利用外部接口来控制 Flash 对象并允许 Flash 对象将消息传递给相同的 JavaScript 有一段时间它在所有浏览器中都运行良好 然后几天前 在我将项目移出开发之前 我去所有浏览器中测
  • 在 IntelliJ“新项目”>“Maven”选项卡中更新 Maven 原型列表

    如何更新 IntelliJ IDEA 版本 2017 2 中 新建项目 对话框中列出的 Maven 原型列表 手动触发Maven缓存更新 IntelliJ 2017 2 与 Maven 相比并不那么 智能 您必须手动调用列出原型的存储库信息
  • MONGODB Mongoimport 可能加速吗?

    我有一个 2 GB 的 CSV 文件 其中包含 9 M 条记录 我使用本机 mongoimport 工具将其导入到 MongoDB 中 它以每秒 8K 的速率导入 CSV 总时间为 10 分钟 导入速度相当合理 但似乎比MySQL LOAD
  • Python转储带有重音符号的json[重复]

    这个问题在这里已经有答案了 如何打印带有特殊字符 或 的json 我可以这样打印 import json weird dict person print json dumps weird dict indent 4 sort keys Tr
  • 在 coord_polo 上制作弯曲文本

    我想用 coord polar 在 ggplot 周围制作弯曲文本 我有数据框 z lt data frame a c sensor 1 sensor 2 sensor 3 sensor 4 sensor 5 sensor 6 sensor
  • cd 命令不会更改目录。命令提示符

    我有 Windows 8 并且正在使用命令提示符 它说 C Windows System32 gt 如果我尝试更改目录 它会显示 系统找不到指定的路径 在这种情况下 我输入以下命令 cd desktop 它在我的 Windows 7 计算机
  • Asp.net MVC ModelState.Clear

    谁能给我一个关于 ModelState 在 Asp net MVC 中的作用的简洁定义 或者一个链接 我特别需要知道在什么情况下有必要或需要打电话ModelState Clear 有点开放式结局吧 抱歉 我认为告诉您我实际上在做什么可能会有