13

私はこのクラスを持っています:

public class Product
{
    [Required(ErrorMessage = "empty name")]
    public string Name { get; set; }

    [Required(ErrorMessage = "empty description")]
    public string Description { get; set; }
}

そして、私はビューに表示されているResponseProductを持っています:

public class ProductInsertVM
{
    public string Message = "Success";
    public Product Product;
}

私の見解では、私はこれを持っています:

@using (Html.BeginForm()){  
    @Html.ValidationSummary(false)

    @Html.TextBoxFor(m => m.Product.Description)
    @Html.ValidationMessageFor(m => m.Product.Description)
}

私が知りたいのは、ValidationMessageForが機能しない理由です。!! ValidationSummaryのみが機能します。私が製品で応答する場合、それは機能します。

4

2 に答える 2

20

次の条件が満たされている場合、指定したコードは正常に機能するはずです。

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>

2)フォームの送信で、ModelState.IsValidプロパティを呼び出しているため、アクションメソッドに渡されたモデルを検証しています。

[HttpPost]
public ActionResult CarList(CarList model)
{
    if (ModelState.IsValid)
    {
       //Save or whatever you want to do 
    }
    return View(model);
}
于 2012-05-21T22:03:42.027 に答える
0

_Lahout.cshtmlにこの行がありませんでした

@ Scripts.Render( "〜/ bundles / jqueryval")

完了:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval") <------------ 
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false) 
于 2021-06-02T14:49:58.987 に答える