Form fields are null on POST

北城以北 提交于 2019-12-12 05:37:26

问题


I have simple contact form, this is the (view)model:

public class ContactForm
{
    [Required]
    public string Name;
    [Required]
    public string Email;
    [Required]
    public string Subject;
    [Required]
    public string Msg;
}

Controller:

public ActionResult Contact (ContactForm form)
{
    return RedirectToAction("Index");
}

View:

@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's Contact method is called. But param form has all fields as null:


回答1:


You need public properties with get set in your Model not fields,Currently you have created fields in Model class which will not work for you:

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;}
}


来源:https://stackoverflow.com/questions/28832791/form-fields-are-null-on-post

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!