我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。
我也在使用实体框架和代码优先方法。
我有一些文本框,我希望它们只接受NUMBERS (Int)。
我试图用 javascript 做到这一点,但我失败了,因为它们是类EDITOR FOR 的形式。
例子 :
<div><%:Html.Label("Nombre de Passage :")%><%: Html.EditorFor(model=>model.Nbr_Passage)%></div>
所以,我在一些教程中发现我必须使用数据注释
我试图在模型中这样做:
[Range(1, 100,
ErrorMessage = "Price must be between 1 and 100")]
public int Nbr_Passage { get; set; }
但是当我按下按钮提交时,总是出现这个错误:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
我对此进行了一些研究,我发现我必须使用try catch。但我不知道在哪里以及如何使用它。
这是控制器的代码(提交时的功能):
public ActionResult Save(FlowViewModel model)
{
if (ModelState.IsValid)
{
Gamme G = new Gamme();
G.ID_Gamme = model.SelectedProfile_Ga;
G.ID_Poste = model.SelectedPoste;
G.Last_Posts = model.PostePrecedentSelected;
G.Next_Posts = model.PosteSuivantSelected;
G.Nbr_Passage = int.Parse(model.Nbr_Passage);
G.Position = int.Parse(model.Position);
ListG.Add(G);
db.Gammes.Add(G);
db.SaveChanges();
}
return RedirectToAction("Index");
}
更新: 这是 javascript 代码影响将打开视图的按钮:
<input type="button" value="Configurer" id="btnShowGestion" /></div>
<div id="divGestion"><%: Html.Partial("Gestion", Model) %></div>
<% } %>
<script type="text/javascript">
$(document).ready(function () {
$('#btnShowGestion').click(function () { $('#divGestion').slideToggle("slow") });
});
</script>
<fieldset>