ASP.NET应用程序示例代码:错误调用/ api /帐户/注册

时间:2015-08-03 15:56:45

标签: asp.net asp.net-mvc razor asp.net-web-api

我选择ASP.NET Web应用程序,然后选择Web API ...我将身份验证保留在"个人用户帐户"并创建项目。

当我将下面的代码添加到index.cshtml页面时...运行它...然后单击“提交”。我得到一个NullReferenceException ...这是因为参数" model'是空的。

任何帮助?...这对我来说似乎很基本......我只是采取生成的样本并试图用表单调用api。

---错误发生的代码---

    public async Task<IHttpActionResult> Register(RegisterBindingModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        // *** NullReferenceException here as "model" is null ***

        var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
        ...

--- index.cshtml中的表单---

    <form action="~/api/Account/Register" method="post">
        <table>
            <tr><td>Email</td><td><input type="text" id="Email" value="mail@brianrice.com" /></td></tr>
            <tr><td>Password</td><td><input type="text" id="Password" value="f00tball" /></td></tr>
            <tr><td>ConfirmPassword</td><td><input type="text" id="ConfirmPassword" value="f00tball" /></td></tr>
            <tr><td></td><td><input type="submit" /></td></tr>
        </table>
    </form>

1 个答案:

答案 0 :(得分:0)

模型为null,因为您的输入都没有名称。因此,根本没有没有。只需提供与RegisterBindingModel上的属性名称匹配的输入名称,或者更好的是,使用强类型HTML帮助程序构建表单:

@model RegisterBindingModel

...

@Html.TextBoxFor(m => m.Email)

<!-- etc -->