gpt4 book ai didi

c# - 如何验证 ASP.NET MVC 中的文本框

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:05 25 4
gpt4 key购买 nike

我是 ASP.NET MVC 的新手,正在尝试验证文本框。基本上,如果用户输入小于 2 或非数字,我该如何显示错误。这是 tutorial我正在努力跟随。

下面是我的代码。

创建 View :

<%= Html.ValidationSummary()%>
<%= using (HtmlBeginForm()){%>
<div class="half-col">
<label for="Amount">Amount:</label>
<%= Html.TextBox("Amount")%>
<%= Html.ValidationMessage("Amount", "*")%>
</div>

创建 Controller :

[AcceptVerbs (HttpVerbs.Post)]
public ActionResult Create([Bind(Exclude ="ID")] Charity productToCreate)
{
//Validation
if (productToCreate.Amount < 2)
ModelState.AddModelError("Amount, Greater than 2 please");

return View(db.Donations.OrderByDescending(x => x.ID).Take(5).ToList()); //Display 5 recent records from table
}

型号:

public class Charity
{
public int ID { get; set; }
public string DisplayName { get; set; }
public DateTime Date { get; set; }
public Double Amount { get; set; }
public Double TaxBonus { get; set; }
public String Comment { get; set; }
}

错误:

CS1501 No overload for method 'AddModelError' takes 1 CharitySite

最佳答案

您错误地将错误添加到您的模型状态。您可以在 MSDN 上阅读有关 ModelStateDictionary 的更多信息

AddModelError 接受 2 个参数,因此您需要:

ModelState.AddModelError("Amount", "Greater Than 2 Please.");

话虽如此,您可以使用特性来验证您的模型属性,这样您就不必手动编写所有这些代码。下面是使用 Range 属性的示例。 RegularExpression 属性也可以工作。这是一个 MSDN包含有关不同类型属性的信息的文章。

public class Charity
{
public int ID { get; set; }
public string DisplayName { get; set; }
public DateTime Date { get; set; }

[Range(2, Int32.MaxValue, ErrorMessage = "The value must be greater than 2")]
public Double Amount { get; set; }
public Double TaxBonus { get; set; }
public String Comment { get; set; }
}

另请注意,您正在学习的教程适用于 MVC 1 和 2。除非你必须使用/学习它。我建议遵循 MVC 5 教程 here .

关于c# - 如何验证 ASP.NET MVC 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35756352/

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