gpt4 book ai didi

asp.net-mvc-2 - Id 属性处的 ASP.MVC 2 RTM + ModelState 错误

转载 作者:行者123 更新时间:2023-12-04 10:58:39 28 4
gpt4 key购买 nike

我有这门课:

public class GroupMetadata
{
[HiddenInput(DisplayValue = false)]
public int Id { get; set; }

[Required]
public string Name { get; set; }
}

[MetadataType(typeof(GrupoMetadata))]
public partial class Group
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}

而这个 Action :

[HttpPost]
public ActionResult Edit(Group group)
{
if (ModelState.IsValid)
{
// Logic to save
return RedirectToAction("Index");
}

return View(group);
}

这是我的看法:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Group>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) {%>
<fieldset>
<%= Html.EditorForModel() %>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
<div>
<%=Html.ActionLink("Back", "Index") %>
</div>
</asp:Content>

但是 ModelState 总是无效的!正如我所看到的,对于 MVC 验证 0 是无效的,但对我来说是有效的。
我该如何修复它,因为我没有在 Id 属性中进行任何类型的验证?

更新:
我不知道如何或为什么,但重命名 Id,在我的情况下为 PK,解决了这个问题。

您知道这是我的逻辑/配置中的问题还是错误或预期行为?

最佳答案

就在此之前 if (ModelState.IsValid)使用此行删除 Id 索引 ModelState.Remove("Id")这样当MVC团队删除这个bug时,你只需要删除你项目的这行代码。

关于asp.net-mvc-2 - Id 属性处的 ASP.MVC 2 RTM + ModelState 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555677/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com