0

したがって、この例を使用してチェックボックスリストを作成します

asp.netMVCのチェックボックスリスト

私の作成(新規登録の場合)では正常に機能しますが、編集では機能せず、クラスの理由がわかりません。

public class cliente
    {
        [Key ,DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int id { get; set; }

        [DisplayName("Nombre")]
        [Required(ErrorMessage = "Descripcion es requerido.")]
        [MaxLength(100, ErrorMessage = "El Nombre no puede contener mas de 100 caracteres")]
        public string descripcion {get; set;}


        [DisplayName("Visita")]
        public string visita { get; set; } 


        public Dias DiasVisita { get; set; }

       //more properties..

        [Flags]//<-- Note the Flags attribute
        public enum Dias
        {
            Lunes = 1,
            Martes = 2,
            Miercoles = 4,
            Jueves = 8,
            Viernes = 16,
            Sabado = 32,
            Domingo = 64,
        }

私の見解。

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Cliente</legend>

        @Html.HiddenFor(model => model.id)
        @Html.HiddenFor(model => model.categoria)
        @Html.HiddenFor(model => model.visita)

        <div class="editor-label">
            @Html.LabelFor(model => model.descripcion)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.descripcion, new { style = "width: 300px;" })
            @Html.ValidationMessageFor(model => model.descripcion)
        </div>


      <div class="editor-label">
       @Html.LabelFor(model => model.visita)
    </div>

    <div class="editor-field">
        @Html.CheckboxListForEnum("dias", Model.DiasVisita)
    </div>

      <div class="editor-label">
       @Html.LabelFor(model => model.orden)
    </div>

        <div class="editor-field">
            @Html.TextBoxFor(model => model.orden)
            @Html.ValidationMessageFor(model => model.orden)
        </div>

        <p>
            <input type="submit" value="Guardar" />
        </p>
    </fieldset>
}

コントローラのアクションエディタボタンを押してもここに入らないデバッグ

 [HttpPost]
        public ActionResult Editar(cliente cliente, string[] dias)
        {
    }

ボタンを押すと、どこに行くのか、何を探すのかをどうやって知ることができますか?奇妙なことに、私の作成はこの編集と同じですが、作成作業は

4

2 に答える 2

0

送信ボタンを押すと、コントローラーは送信されたフォームから指定したフィールドの投稿値を自動的に取得します。

デバッグする場合は、コントローラーのアクションにブレークポイントを設定し、モデルのバインドが自動的に行われるため、モデルオブジェクトに投稿されたすべての値を確認します。

于 2012-07-13T15:41:23.190 に答える
0

ボタンを押したときに、どこに行くのか、何を探しているのかを知るにはどうすればよいですか?

1) ネットワークを監視するツールはたくさんあります。よく知られている必要があるのは次のとおりです。

  1. Firebug - Firefox 用
  2. フィドラー2

2) HatSoft が言ったように、フォーム タグ内のすべてのフィールドを送信するボタンを押します。

3)投稿リクエストの送信先をより具体的に定義したい場合は、FormExtensions.BeginFormオーバーロードを使用します。この場合、次を使用できます。

Html.BeginForm("YourControllerName", "Editar", new {area="YourAreaName"}) 
于 2012-07-13T15:59:59.997 に答える