0

enter code hereクライアント側のフォーム検証を使用していますが、機能していません。

私のモデル:

[Key]
public int Id { get; set; }

[Required(ErrorMessage = "Error")]
[RegularExpression(@"^[0-9\.]*$",ErrorMessage="Error")]
public string Scode { get; set; }

私の見解:

@Html.ValidationSummary(true)
@using(Html.BeginForm("CreateSharshomari", "VahedInfo", FormMethod.Post))
{
    @Html.TextBox("Scode")
    @Html.ValidationMessage("Scode")

    <input id="BtnErsal" type="submit" value="ارسال" />
}

何が間違っている可能性がありますか?

それは私のコントローラーです。おそらく問題があると思います。それを見て、あなたの意見を言ってください。

    public PartialViewResult CreateSharshomari()
    {
        IEnumerable<Lcity> Lcitys = Dbcon.Lcitys;
        IEnumerable<RFaaliat> RFaaliats = Dbcon.RFaaliats;

        var query = Lcitys.Select(x => new SelectListItem
            {
                Value = x.Citycode.ToString(),
                Text = x.CityName,
                Selected = x.Citycode == 1
            });
        var query1 = RFaaliats.Select(x => new SelectListItem
            {
                Value = x.IDReshteh.ToString(),
                Text = x.ReshteName,
                Selected = x.IDReshteh == 1
            });

        var model = new CityFaaliatViewModel
        {
            Lcitylist = query.AsEnumerable(),
            RFaaliatList = query1.AsEnumerable()
        };
        return PartialView(model);
    }
    [HttpPost]
    public ActionResult CreateSharshomari(TaavoniInfo Info,CityFaaliatViewModel selcode)
    {
        try
        {
            TaavoniInfo idcity = Info;
            idcity.idCitycode = Convert.ToInt32(selcode.SelectedCitycode);
            idcity.idIDReshteh = Convert.ToInt32(selcode.SelectedIDReshteh);
           Dbcon.TaavoniInfos.Add(idcity);
            Dbcon.SaveChanges();
            ViewBag.SuccessMsg = "success";
            return View();
        }
        catch
        {
            ViewBag.SuccessMsg = "error";
            return View();
        }
   }

私を助けてください。

4

1 に答える 1

1

以下のように必要な jQuery ファイルをインポートしましたか? そうでない場合は、そうすることをお勧めします。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

あなたのモデルを考えると:

public class MyViewModel
{
  [Key]
  public int Id { get; set; }

  [Required(ErrorMessage = "Error")]
  [RegularExpression(@"^[0-9\.]*$",ErrorMessage="Error")]
  public string Scode { get; set; }
}

コントローラ:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel());
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

意見:

@model SomeAppName.Models.MyViewModel

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using(Html.BeginForm("CreateSharshomari", "VahedInfo", FormMethod.Post))
{
    @Html.ValidationSummary(true)
    @Html.TextBox("Scode")
    @Html.ValidationMessage("Scode")

    <input id="BtnErsal" type="submit" value="ارسال" />
}

Web.config検証がクライアント側で機能するためには、ファイルに次のキーが必要であることに注意してください。

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

または App_Start で

protected void Application_Start() 
{
   //Enable or Disable Client Side Validation at Application Level
   HtmlHelper.ClientValidationEnabled = true;
   HtmlHelper.UnobtrusiveJavaScriptEnabled = true;
}
于 2013-08-29T08:18:54.687 に答える