POST上的表单字段为空

Fab*_*cio 0 c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我有简单的联系表格,这是(查看)模型:

public class ContactForm
{
    [Required]
    public string Name;
    [Required]
    public string Email;
    [Required]
    public string Subject;
    [Required]
    public string Msg;
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public ActionResult Contact (ContactForm form)
{
    return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)

视图:

@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>
}
Run Code Online (Sandbox Code Playgroud)

调用Controller的Contact方法.但是param form将所有字段都设为null:

在此输入图像描述

Ehs*_*jad 5

您需要在"模型" 字段中使用公共属性,目前您已在"模型"类中创建了不适合您的字段:get set

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;}
}
Run Code Online (Sandbox Code Playgroud)