asp.net-mvc – 在TryUpdateModel之前更新值提供程序
发布时间:2020-12-16 09:58:40 所属栏目:asp.Net 来源:网络整理
导读:假设我们有一个名为PetsName的类.如果它在屏幕上留空,我想更新值提供者,所以如果用户没有输入宠物名称,我们强制“未命名”.这不是实际情况..这当然是一个示例,所以像“只是在网页上设置默认值等”的答案将不适合这种情况:) 主要问题是我们想要更新值,因此当
假设我们有一个名为PetsName的类.如果它在屏幕上留空,我想更新值提供者,所以如果用户没有输入宠物名称,我们强制“未命名”.这不是实际情况..这当然是一个示例,所以像“只是在网页上设置默认值等”的答案将不适合这种情况:)
主要问题是我们想要更新值,因此当您更新模型时,它将使用您覆盖的任何内容.我想一个想法是删除值并添加它.当我检查ModelState时,它确实具有更新的值,但是当我调用TryUpdateModel时,该值不会更新.它可能我在下面做的确实是正确的,这里还有另一个问题,但我想我先试试这个.谢谢! //Sample case: [HttpPost] public ActionResult Edit(PetOwner petOwner) { //If pets name is not set,force to "Unknown" if(petOwner.PetsName=="") { //Tried this too ModelState.Remove("PetsName"); //ModelState.Add("PetsName",new ModelState()); ModelState["PetsName"].Value = new ValueProviderResult("Unnamed","Unnamed",CultureInfo.CurrentCulture); } //Get the record/relationships from DB to merge with ModelState PetOwner petOwnerToSave = from o in ctx.PetOwners where o.PetOwnerId == petOwner.PetOwnerId select o; TryUpdateModel(petOwnerToSave); //Save petOwnerToSave } 解决方法
这里幕后的真正问题是Html.HiddenFor没有显示正确的值,即使TryUpdateModel正在更新模型中的值以提供给视图.
这里的问题是Html助手假设你在帖子之后渲染一个视图,一定是错误的(否则你会用GET方法重定向回到视图 – 因此Post Redirect Get问题) 这在以下详细描述: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用CRC的较短GUID
- asp.net – 干净的方式来防止输入按钮提交表单
- ASP.Net(也许是MVC)网站的博客引擎
- ASP.NET MVC路由的无限URL参数
- asp.net – 运行Quartz.NET嵌入式或作为Windows服务的优点和
- asp.net-mvc-2 – 来自下拉列表的id值的Html.ActionLink
- ASP.NET Core 2.0 WebApi全局配置及日志实例
- asp.net – 如何保护存储在web.config中的密码?
- asp.net – httpCookies requireSSL在http上设置为true不会
- 如何从中等信任的ASP.NET中的bin文件夹加载文件
推荐文章
站长推荐
- asp.net web大文件上传带进度条实例代码
- asp.net – 如何使用PSAKE发布网站
- asp.net – Web窗体中的.NET MVC FileResult等价
- asp.net-mvc – 到Spark还是不Spark?
- asp.net-mvc-3 – 将@helper代码转移到App_Code文
- asp.net-mvc – 如何在ASP.NET MVC中维护Html.Ch
- asp.net-mvc – MVC在提交按钮单击后登录重定向后
- asp.net-mvc – 将MVC添加到现有的ASP.net网站
- 有关在asp.net中显示用户消息的好方法的建议吗?
- asp.net-mvc – 用于创建具有模型和ViewData项目
热点阅读