所以使用这个例子做一个复选框列表
它在我的创建(对于新的注册表)中工作正常,但在我的编辑中却无法解决原因 我的班级:
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)
{
}
我怎么知道我什么时候按下按钮的位置或者它的样子? 奇怪的是,我的创建与此编辑相同,但创建工作
答案 0 :(得分:0)
当您按下提交按钮时,控制器会自动从您提交的表单中选择您指定的字段的后期值。
如果你想调试然后在控制器的动作中设置一个断点,并在Model对象中查看所有发布的值,因为模型绑定是自动完成的
答案 1 :(得分:0)
我怎么知道我什么时候按下按钮的位置或者它的样子?
1)有许多工具可以监控网络。众所周知的是:
2)正如HatSoft所说,你按下提交表格标签内所有字段的按钮。
3)如果您想更具体地定义帖子请求的去向,请使用FormExtensions.BeginForm重载,在您的情况下,您可以使用:
Html.BeginForm("YourControllerName", "Editar", new {area="YourAreaName"})