0

ASP.Net MVC 3 アプリケーションで検証エラーを発生させようとしています。ユーザーが 1000 より大きい数値を入力すると、エラー メッセージが表示されます。ビューモデルで次のコードを使用すると、機能していないようです。
何を変更する必要がありますか?

[Range(0, 1000, ErrorMessage = "Total number of rows to display must be between 0 to 1000")]
 public int DisplayTop { get; set; }

cshtml :

@model  Calc.Models.CountingVM
@{
    ViewBag.Title = "Reports";
    Layout = "~/Views/Shared/_reportsLayout.cshtml";
}
@using (Html.BeginForm("Reports", "Calc", FormMethod.Post, new { @id = "frmReport" }))
{   
 .........
  @Html.TextBoxFor(c => c.DisplayTop, "1000")
  @Html.ValidationMessageFor(c => c.DisplayTop)
}

アクション方法:

       public ActionResult Reports(string ReportName, CalcCriteria criteria)
            {

                  if ((criteria == null) || (criteria.nId == null))
                    {
                        criteria = TempData["criteria"] as CalcCriteria;
                        TempData["criteria"] = criteria; // For reload, without this reloading the page causes null criteria.
                    }
                  ReportType c = (ReportType)Enum.Parse(typeof(ReportType), ReportName, true);
                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    string vmJson = string.Empty;

                    switch (c)
                    {
                           .....
                            int displayTop;
                           ..........
                            case ReportType.Inventory_Counts_Report:                      
                           ..............
                            displayTop = Convert.ToInt32(Request["DisplayTop"]);
                           ........
                     return View("Counting", CountingVM);
                     default:
                            return View();
                     }
                return View(); }

ありがとう

BB

4

2 に答える 2

1

検証メッセージも表示する必要があります。

@Html.ValidationMessageFor(c => c.DisplayTop)
于 2013-02-15T20:32:55.480 に答える
0

試す

@Html.EditorFor(c => c.DisplayTop, "1000")

プロパティがint型で、範囲がint型であるため、テキストボックスに表示しているため、問題が発生すると思います。

また、コントローラーを追加する必要がありModelState.IsValidます。例えば:

[HttpPost]
public ActionResult Create(YourModel model)
{
   if(ModelState.IsValid)
   {
      // Put your logic here
   }

   return View(create)
}
于 2013-02-15T20:33:27.183 に答える