0

所以使用这个例子来做一个复选框列表

asp.net MVC 中的复选框列表

它在我的创建(对于新注册)中工作正常,但在我的编辑中却没有,并且无法弄清楚为什么我的课程:

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 - 用于火狐
  2. 提琴手2

2)正如 HatSoft 所说,您按下按钮提交表单标签内的所有字段。

3)如果您想更具体地定义发布请求的去向,请使用FormExtensions.BeginForm重载,在您的情况下,您可以使用:

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