gpt4 book ai didi

asp.net-mvc - 需要 MVC 模型验证不适用于所有领域

转载 作者:行者123 更新时间:2023-12-03 06:15:44 27 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 4,但遇到模型验证无法正常工作的问题。由于某种原因,并非所有必填字段都必须填写。

这是我的模型:

public class MovieModel
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public DateTime ReleaseDate { get; set; }
[Required]
public string Genre { get; set; }
[Required]
public decimal Price { get; set; }

public virtual ICollection<RoleInMovie> RoleInMovie { get; set; }
}

这是 View :

@using (Html.BeginForm())
{
<table>
<tr>
<td>
<label>Name:</label></td>
<td>@Html.EditorFor(m => m.Name)</td>
<td>@Html.ValidationMessageFor(m => m.Name)</td>
</tr>
<tr>
<td>
<label>Genre:</label></td>
<td>@Html.EditorFor(m => m.Genre)</td>
<td>@Html.ValidationMessageFor(m => m.Genre)</td>
</tr>
<tr>
<td>
<label>Price:</label></td>
<td>@Html.EditorFor(m => m.Price)</td>
<td>@Html.ValidationMessageFor(m => m.Price)</td>
</tr>
</table>
<button type="submit">Submit</button>
}

这是我的行动:

[HttpPost]
public ActionResult Add(MovieModel model)
{
if(ModelState.IsValid)
{
return RedirectToAction("Index");
}
return View();
}

现在事情是这样的:只要我只输入一个价格,modelstate.isvalid 就变为 true。当将鼠标悬停在我的模型上时,它说名称和类型都为空。当然它们是必需的,但验证不起作用。此外,验证消息仅适用于价格。

我希望我没有忽略一些太荒谬的事情。感谢您的帮助!

最佳答案

将无效模型返回到 View :

[HttpPost]
public ActionResult Add(MovieModel model)
{
if(ModelState.IsValid)
{
return RedirectToAction("Index");
}
return View(model); // <----
}

哦,并确保必需的属性不允许空字符串

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.requiredattribute.allowemptystrings.aspx

public class MovieModel
{
public int Id { get; set; }

[Required(AllowEmptyStrings = false)]
public string Name { get; set; }

public DateTime ReleaseDate { get; set; }

[Required(AllowEmptyStrings = false)]
public string Genre { get; set; }

[Required]
public decimal Price { get; set; }

public virtual ICollection<RoleInMovie> RoleInMovie { get; set; }
}

关于asp.net-mvc - 需要 MVC 模型验证不适用于所有领域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359334/

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