ViewModel值始终为null

0 c# asp.net asp.net-mvc viewmodel asp.net-mvc-5

我已经遵循了一些教程,我也搜索了StackOverflow,但我仍然走到了尽头.

基本上,我正在尝试在MVC 5中提交一个表单(新的MVC,尽管使用了WebForms).所以这是我的组件 -

控制器(./Controllers/AccountController.cs)

using BitHost.Models;
using System.Web.Mvc;

namespace BitHost.Controllers
{
    public class AccountController : Controller
    {
        // GET: Account
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Register()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Register(UserAccount model)
        {
            string sEmailAddress = model.EmailAddress;
            string sPassword = model.Password;
            bool bAgreedToTerms = model.AgreedToTerms;

            return Redirect("/");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ViewModel(./ Model/AccountModel.cs)

namespace BitHost.Models
{
    public class UserAccount
    {
        public string EmailAddress;
        public string Password;
        public bool AgreedToTerms;
    }
}
Run Code Online (Sandbox Code Playgroud)

查看(./Views/Account/Register.cshtml)

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Title = "Register";
}

@model BitHost.Models.UserAccount

<div class="row">
    <h2>Create a new account</h2>
    @using (Html.BeginForm())
    {
        <div class="input-group">
            <span class="input-group-addon"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span></span>
            @Html.TextBoxFor(model => model.EmailAddress, new { Class = "form-control", Placeholder = "Email Address" })
        </div><br />
        <div class="input-group">
            <span class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>
            @Html.TextBoxFor(model => model.Password, new { Class = "form-control", Type = "password", Placeholder = "Password" })
        </div><br />
        <div class="input-group">
            <span class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>
            <input type="password" class="form-control" placeholder="Verify Password" />
        </div><br />
        <div class="input-group">
            @Html.CheckBoxFor(model => model.AgreedToTerms, new { Class = "form-control" })
        </div><br />

        <input type="submit" name="Submit" class="btn btn-default" />
    }
</div>
Run Code Online (Sandbox Code Playgroud)

点击注册表单上的"提交"后,我会接受[HttpPost]操作来创建帐户,但是从模型收集的变量都包含空值.

任何帮助将不胜感激,谢谢.

Ali*_*ani 5

UserAccount不正确.像这样编辑它

用户帐号

  • @MrDKOz:你现在所谓的"字段","属性"有一个getter和setter,即使它们只是自动实现.只有属性才有资格绑定. (2认同)