我选择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>
答案 0 :(得分:0)
模型为null,因为您的输入都没有名称。因此,根本没有没有。只需提供与RegisterBindingModel
上的属性名称匹配的输入名称,或者更好的是,使用强类型HTML帮助程序构建表单:
@model RegisterBindingModel
...
@Html.TextBoxFor(m => m.Email)
<!-- etc -->