2

asp.net mvc Webアプリケーション内に次のビューがあります:-

@using (Ajax.BeginForm("CheckUserPermision", "SecurityRole", 
new AjaxOptions
{
    HttpMethod = "get",
    InsertionMode = InsertionMode.Replace,
    LoadingElementId = "progress2",
    UpdateTargetId = "userSecurityRole"
}))
{


  <div>
    <span class="f">User Name </span> 
        <input  name="username" type="text" data-val="true" data-val-required= "Please enter a value." data-autocomplete-source= "@Url.Action("AutoComplete", "SecurityGroup")"  /> 
<span class="field-validation-valid" data-valmsg-for="username" data-valmsg-replace="true"></span>

</div>

現在、ユーザーは「ユーザー名」フィールド内にテキストを入力しない限り、検索を実行できません。data-val="trueしかし、私の質問は「必要なフィールドの検証を強制する正しいアプローチを使用した天気ですか?

4

2 に答える 2

1

いいえ。これには ViewModel を使用するだけです。

public class SearchNameViewModel
{   
   [Required]
   public string UserName { get;set; }

}

意見

@model SearchNameViewModel
@using (Ajax.BeginForm("CheckUserPermision", "SecurityRole", 
new AjaxOptions
{
    HttpMethod = "get",
    InsertionMode = InsertionMode.Replace,
    LoadingElementId = "progress2",
    UpdateTargetId = "userSecurityRole"
}))
{


  <div>
    @Html.LabelFor(x => x.UserName)
    @Html.TextBoxFor(x => x.UserName,
     new { data_autocomplete_source = Url.Action("AutoComplete", "SecurityGroup") })
    @Html.ValidationMessageFor(x => x.UserName)
</div>
于 2013-11-03T21:49:25.327 に答える
1

1 つはクライアント側の検証で、もう 1 つはサーバー側です。適切な安全なコーディング標準では、両方を使用する必要があります。サーバー側の検証 (ビュー モデル データの注釈) の方が安全ですが、クライアント側の検証では、要求が送信される前に問題を把握できます。

于 2015-01-25T16:30:21.893 に答える