POST 上的表单字段为空
Form fields are null on POST
我有简单的联系表,这是(视图)模型:
public class ContactForm
{
[Required]
public string Name;
[Required]
public string Email;
[Required]
public string Subject;
[Required]
public string Msg;
}
控制器:
public ActionResult Contact (ContactForm form)
{
return RedirectToAction("Index");
}
查看:
@model myNamespace.ContactForm
...
@using (Html.BeginForm("Contact", "Home", FormMethod.Post))
{
@Html.LabelFor(x => x.Name)
@Html.TextBoxFor(x => x.Name)
@Html.LabelFor(x => x.Email)
@Html.TextBoxFor(x => x.Email)
@Html.LabelFor(x => x.Subject)
@Html.TextBoxFor(x => x.Subject)
@Html.LabelFor(x => x.Msg)
@Html.TextAreaFor(x => x.Msg)
<button type="submit">Enviar</button>
}
Controller 的 Contact 方法被调用。但是参数 form
的所有字段都为空:
您需要 public properties with get
set
in your Model not fields,目前您在模型 class 中创建了字段,这对您不起作用:
public class ContactForm
{
[Required]
public string Name {get;set;}
[Required]
public string Email { get; set;}
[Required]
public string Subject {get;set;}
[Required]
public string Msg{get;set;}
}
我有简单的联系表,这是(视图)模型:
public class ContactForm
{
[Required]
public string Name;
[Required]
public string Email;
[Required]
public string Subject;
[Required]
public string Msg;
}
控制器:
public ActionResult Contact (ContactForm form)
{
return RedirectToAction("Index");
}
查看:
@model myNamespace.ContactForm
...
@using (Html.BeginForm("Contact", "Home", FormMethod.Post))
{
@Html.LabelFor(x => x.Name)
@Html.TextBoxFor(x => x.Name)
@Html.LabelFor(x => x.Email)
@Html.TextBoxFor(x => x.Email)
@Html.LabelFor(x => x.Subject)
@Html.TextBoxFor(x => x.Subject)
@Html.LabelFor(x => x.Msg)
@Html.TextAreaFor(x => x.Msg)
<button type="submit">Enviar</button>
}
Controller 的 Contact 方法被调用。但是参数 form
的所有字段都为空:
您需要 public properties with get
set
in your Model not fields,目前您在模型 class 中创建了字段,这对您不起作用:
public class ContactForm
{
[Required]
public string Name {get;set;}
[Required]
public string Email { get; set;}
[Required]
public string Subject {get;set;}
[Required]
public string Msg{get;set;}
}